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.automaster.autoview.client.ui.paineis.dialogs.editar.EditarPadraoLigacao.java

public EditarPadraoLigacao(final ArrayList<TreeMap<String, String>> dadosVeiculoCopia,
        final ListGridRecord recordEditarVeiculo, final ListGrid listPadLigEditarVeiculo,
        final HTMLPane tabelaVeiculosCopia) {

    // abriu o formulrio de edio do padro de ligao //
    Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 290,
            new Timestamp(System.currentTimeMillis()), "");
    setTitle(Info.titulosMsg.get("editarPadraoLigacao"));
    setWidth(500);//from w  w w .  ja  v a  2 s. co m
    setHeight(400);
    setShowMinimizeButton(false);
    setIsModal(true);
    setShowModalMask(true);
    centerInPage();
    setLayoutAlign(Alignment.CENTER);
    final Window windowAux = this;

    Label label = new Label("<strong><h3>" + Info.titulosMsg.get("editarPadraoLigacao") + "</h3></strong>");
    label.setAlign(Alignment.CENTER);
    label.setStyleName(scClassName);

    final DynamicForm formNovoPadLig = new DynamicForm();
    formNovoPadLig.setAutoFocus(true);

    final TextItem corFio = new TextItem();
    corFio.setCharacterCasing(CharacterCasing.UPPER);
    corFio.setTitle(Info.titulosMsg.get("corFio"));
    corFio.setName("corFio");
    corFio.setHint("<nbr>*</nbr>");
    corFio.setKeyPressFilter("[a-zA-Z?? [0-9]");
    corFio.setRequired(true);
    corFio.setWidth(230);
    LengthRangeValidator tamanhoNome = new LengthRangeValidator();
    tamanhoNome.setMin(2);
    corFio.setValidators(tamanhoNome);
    corFio.setValue(recordEditarVeiculo.getAttribute("corFio"));

    final SelectItem sinal = new SelectItem();
    sinal.setTitle(Info.titulosMsg.get("sinal"));
    sinal.setName("sinal");
    LinkedHashMap<String, String> sn = new LinkedHashMap<>();
    sn.put("true", "Positivo");
    sn.put("false", "Negativo");
    sinal.setValueMap(sn);
    sinal.setHint("<nbr>*</nbr>");
    sinal.setRequired(true);
    sinal.setWidth(226);
    sinal.setValue(
            ((recordEditarVeiculo.getAttribute("sinalPad").equalsIgnoreCase("Positivo")) ? "true" : "false"));

    final SelectItem padVeic = new SelectItem();
    padVeic.setTitle(Info.titulosMsg.get("padrao"));
    padVeic.setName("padVeic");
    LinkedHashMap<String, String> padV = new LinkedHashMap<>();
    padV.put("true", "Ligado");
    padV.put("false", "Desligado");
    padVeic.setValueMap(padV);
    padVeic.setHint("<nbr>*</nbr>");
    padVeic.setRequired(true);
    padVeic.setWidth(226);
    padVeic.setValue(
            ((recordEditarVeiculo.getAttribute("padraoLd").equalsIgnoreCase("Ligado")) ? "true" : "false"));

    final SelectItem funcao = new SelectItem();
    funcao.setTitle(Info.titulosMsg.get("funcao"));
    funcao.setName("funcao");
    LinkedHashMap<String, String> fun = new LinkedHashMap<>();
    fun.put("true", "entrada");
    fun.put("false", "saida");
    funcao.setValueMap(fun);
    funcao.setHint("<nbr>*</nbr>");
    funcao.setRequired(true);
    funcao.setWidth(226);
    funcao.setValue(
            ((recordEditarVeiculo.getAttribute("funcaoPad").equalsIgnoreCase("Entrada")) ? "true" : "false"));

    final SelectItem ativo = new SelectItem();
    ativo.setTitle(Info.titulosMsg.get("ativo"));
    ativo.setName("ativo");
    LinkedHashMap<String, String> at = new LinkedHashMap<>();
    at.put("true", "Sim");
    at.put("false", "No");
    ativo.setValueMap(at);
    ativo.setHint("<nbr>*</nbr>");
    ativo.setRequired(true);
    ativo.setWidth(226);
    ativo.setValue(((recordEditarVeiculo.getAttribute("ativoPad").equalsIgnoreCase("Sim")) ? "true" : "false"));

    final TextAreaItem descricao = new TextAreaItem();
    descricao.setTitle(Info.titulosMsg.get("descricao"));
    descricao.setName("descricao");
    descricao.setPrintFullText(false);
    descricao.setWidth(226);
    descricao.setValue(
            ((recordEditarVeiculo.getAttribute("descricaoPad").equalsIgnoreCase("Sem informao")) ? ""
                    : recordEditarVeiculo.getAttribute("descricaoPad")));

    HLayout hButoes = new HLayout();
    hButoes.setWidth(100);
    hButoes.setMembersMargin(3);
    hButoes.setLayoutAlign(Alignment.CENTER);
    IButton salvar = new IButton(Info.titulosMsg.get("tituloSalvar"));
    hButoes.setMargin(5);
    hButoes.addMember(salvar);

    addCloseClickHandler(new CloseClickHandler() {

        @Override
        public void onCloseClick(CloseClickEvent event) {
            // no salvou a edio do padro de ligao j cadastrado //
            Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 291,
                    new Timestamp(System.currentTimeMillis()), "");
            windowAux.destroy();
        }
    });
    formNovoPadLig.setTitleOrientation(TitleOrientation.TOP);
    formNovoPadLig.setItems(corFio, sinal, padVeic, funcao, ativo, descricao);

    HLayout hform = new HLayout();
    hform.setWidth(470);
    hform.setMembersMargin(3);
    hform.setLayoutAlign(Alignment.CENTER);
    hform.addMember(formNovoPadLig);

    salvar.addClickHandler(new ClickHandler() {

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

                new Timer() {
                    public void run() {

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

                            if (contador >= 100) {
                                mensagem.setContents("Carregando: 100%");
                                TreeMap<String, String> padLigAtualizado = new TreeMap<String, String>();
                                padLigAtualizado.put("codVeiculo", dadosVeiculoCopia.get(0).get("codVeiculo"));
                                padLigAtualizado.put("codPad",
                                        recordEditarVeiculo.getAttributeAsString("codPad"));
                                padLigAtualizado.put("corFio", corFio.getValueAsString());
                                padLigAtualizado.put("sinalPad", sinal.getValueAsString());
                                padLigAtualizado.put("padraoLd", padVeic.getValueAsString());
                                padLigAtualizado.put("funcaoPad", funcao.getValueAsString());
                                padLigAtualizado.put("ativoPad", ativo.getValueAsString());
                                padLigAtualizado.put("descricaoPad",
                                        (descricao.getValueAsString() == null
                                                || descricao.getValueAsString().equalsIgnoreCase("")) ? null
                                                        : descricao.getValueAsString());

                                Info.dbService.alterarPadraoLigacao(padLigAtualizado,
                                        new AsyncCallback<Boolean>() {
                                            @Override
                                            public void onSuccess(Boolean result) {
                                                if (result) {
                                                    GWT.log("codVeiculo: "
                                                            + dadosVeiculoCopia.get(0).get("codVeiculo"));
                                                    GWT.log("codPad: "
                                                            + recordEditarVeiculo.getAttribute("codPad"));
                                                    GWT.log("corFio: " + corFio.getValueAsString());
                                                    GWT.log("sinalPad: " + sinal.getValueAsString());
                                                    GWT.log("padraoLd: " + padVeic.getValueAsString());
                                                    GWT.log("funcaoPad: " + funcao.getValueAsString());
                                                    GWT.log("ativoPad: " + ativo.getValueAsString());
                                                    GWT.log("descricaoPad: " + descricao.getValueAsString());
                                                    //GWT.log("Linha 000");
                                                    recordEditarVeiculo.setAttribute("codPad",
                                                            recordEditarVeiculo.getAttributeAsInt("codPad"));
                                                    //GWT.log("Linha 01");
                                                    recordEditarVeiculo.setAttribute("corFio",
                                                            corFio.getValueAsString());
                                                    //GWT.log("Linha 02: - sinal: "+sinal.getValueAsString());
                                                    recordEditarVeiculo.setAttribute("sinalPad",
                                                            ((sinal.getValueAsString().equalsIgnoreCase("true"))
                                                                    ? "Positivo"
                                                                    : "Negativo"));
                                                    //GWT.log("Linha 03");
                                                    recordEditarVeiculo.setAttribute("padraoLd",
                                                            ((padVeic.getValueAsString()
                                                                    .equalsIgnoreCase("true")) ? "Ligado"
                                                                            : "Desligado"));
                                                    //GWT.log("Linha 04");
                                                    recordEditarVeiculo.setAttribute("funcaoPad",
                                                            ((funcao.getValueAsString()
                                                                    .equalsIgnoreCase("true")) ? "Entrada"
                                                                            : "Sada"));
                                                    //GWT.log("Linha 05");
                                                    recordEditarVeiculo.setAttribute("ativoPad",
                                                            ((ativo.getValueAsString().equalsIgnoreCase("true"))
                                                                    ? "Sim"
                                                                    : "No"));
                                                    //GWT.log("Linha 06");
                                                    recordEditarVeiculo.setAttribute("descricaoPad",
                                                            (descricao.getValueAsString() == null || descricao
                                                                    .getValueAsString().equalsIgnoreCase(""))
                                                                            ? "sem informao"
                                                                            : descricao.getValueAsString());
                                                    //GWT.log("Linha 07");
                                                    listPadLigEditarVeiculo.refreshRow(listPadLigEditarVeiculo
                                                            .getRecordIndex(recordEditarVeiculo));
                                                    // GWT.log("Linha 08");
                                                    tabelaVeiculosCopia.markForRedraw();
                                                    for (TreeMap<String, String> editado : dadosVeiculoCopia) {
                                                        if (recordEditarVeiculo.getAttribute("codPad")
                                                                .equalsIgnoreCase(editado.get("codPad"))) {
                                                            editado.put("codPad",
                                                                    recordEditarVeiculo.getAttribute("codPad"));
                                                            editado.put("corFio", corFio.getValueAsString());
                                                            editado.put("sinalPad",
                                                                    ((sinal.getValueAsString()
                                                                            .equalsIgnoreCase("true")) ? "t"
                                                                                    : "f"));
                                                            editado.put("padraoLd",
                                                                    ((padVeic.getValueAsString()
                                                                            .equalsIgnoreCase("true")) ? "t"
                                                                                    : "f"));
                                                            editado.put("funcaoPad",
                                                                    ((funcao.getValueAsString()
                                                                            .equalsIgnoreCase("true")) ? "t"
                                                                                    : "f"));
                                                            editado.put("ativoPad",
                                                                    ((ativo.getValueAsString()
                                                                            .equalsIgnoreCase("true")) ? "t"
                                                                                    : "f"));
                                                            editado.put("descricaoPad",
                                                                    descricao.getValueAsString());
                                                        }
                                                    }
                                                    // edio do padro de ligao do veculo //
                                                    Info.registrarLog(
                                                            Integer.parseInt(
                                                                    Info.usuarioLogado.get("codUsuario")),
                                                            17, new Timestamp(System.currentTimeMillis()),
                                                            "cod. pad. lig.:"
                                                                    + recordEditarVeiculo.getAttribute("codPad")
                                                                    + " cor fio anterior:"
                                                                    + recordEditarVeiculo.getAttribute("corFio")
                                                                    + " sinal anterior:"
                                                                    + recordEditarVeiculo
                                                                            .getAttribute("sinalPad")
                                                                    + " padro anterior:"
                                                                    + recordEditarVeiculo
                                                                            .getAttribute("padraoLd")
                                                                    + "Funo anterior: "
                                                                    + recordEditarVeiculo
                                                                            .getAttribute("funcaoPad")
                                                                    + " ativo anterior: "
                                                                    + recordEditarVeiculo
                                                                            .getAttribute("ativoPad")
                                                                    + " descricao anterior: "
                                                                    + recordEditarVeiculo.getAttribute(
                                                                            "descricaoPad")
                                                                    + " cor fio atual:"
                                                                    + corFio.getValueAsString()
                                                                    + " sinal atual:" + sinal.getDisplayValue()
                                                                    + " padro atual:"
                                                                    + padVeic.getDisplayValue()
                                                                    + "Funo atual: "
                                                                    + funcao.getDisplayValue()
                                                                    + " ativo atual: " + ativo.getDisplayValue()
                                                                    + " descricao atual: "
                                                                    + descricao.getDisplayValue());
                                                    SC.say(Info.titulosMsg
                                                            .get("padraoLigacaoAtualizadoSucesso"));
                                                    windowAux.destroy();

                                                } else {
                                                    // erro ao atualizar o padro de ligao //
                                                    Info.registrarLog(
                                                            Integer.parseInt(
                                                                    Info.usuarioLogado.get("codUsuario")),
                                                            292, new Timestamp(System.currentTimeMillis()),
                                                            "cod. pad. lig.:" + recordEditarVeiculo
                                                                    .getAttribute("codPad"));
                                                    SC.warn(Info.titulosMsg.get("padraoLigacaoAtualizadoErro"));
                                                    //windowAux.destroy();
                                                }

                                            }

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

                                            }
                                        });
                                janelaCarregando.addItem(mensagem);
                                janelaCarregando.setAnimateTime(1200);
                                janelaCarregando.animateHide(AnimationEffect.FADE);
                                contador = 100;
                            }
                        } else {
                            contador = 0;
                        }

                    }
                }.schedule(50);
            }

        }
    });
    addItem(label);
    addItem(hform);
    addItem(hButoes);

}

From source file:com.automaster.autoview.client.ui.paineis.dialogs.editar.EditarVeiculo.java

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

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

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

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

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

                recordCanvas.addMember(editImg);
                return recordCanvas;
            } else if (fieldName.equals("excluir")
                    && record.getAttributeAsString("antiga").equalsIgnoreCase("1")) {
                HLayout recordCanvas = new HLayout(3);
                recordCanvas.setHeight(22);
                recordCanvas.setWidth100();
                recordCanvas.setAlign(Alignment.CENTER);
                ImgButton excluirImg = new ImgButton();
                excluirImg.setShowDown(false);
                excluirImg.setShowRollOver(false);
                excluirImg.setLayoutAlign(Alignment.CENTER);
                excluirImg.setSrc("[SKIN]actions/remove.png");
                excluirImg.setPrompt(Info.titulosMsg.get("excluirPessoaAutorizada"));
                excluirImg.setHeight(16);
                excluirImg.setWidth(16);
                excluirImg.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        SC.confirm("Excluir pessoa autorizada",
                                "Deseja realmente excluir a pessoa autorizada a rastrear?",
                                new BooleanCallback() {

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

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

                                                        @Override
                                                        public void onSuccess(Boolean result) {
                                                            if (result) {

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

                    } /**/

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

            } else {
                return null;
            }

        }
    };

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

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

        @Override
        public void onCloseClick(CloseClickEvent event) {

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

                @Override
                public void execute(Boolean value) {
                    if (value) {
                        // no salvou a edio do veculo //
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 191,
                                new Timestamp(System.currentTimeMillis()), "Placa: "
                                        + dadosVeiculo.get(0).get("placaVeiculo") + ", Cliente" + nomeCliente);
                        windAux.destroy();
                    }
                }
            });
            //GWT.log(""+clienteEdicao);
        }
    });
    //criando o Vlayout que ir armazenar o painelNovoCliente
    HLayout painelpagina = new HLayout();
    painelpagina.setWidth100();
    painelpagina.setHeight100();
    painelpagina.setAlign(Alignment.CENTER);
    //Criando o painel que ir armazenar to tab, sections e butoes
    VLayout painelNovoVeiculo = new VLayout();
    painelNovoVeiculo.setMembersMargin(15);
    painelNovoVeiculo.setWidth(1000);
    painelNovoVeiculo.setDefaultLayoutAlign(Alignment.CENTER);
    //criando o painel que ir armazenar os botoes cadastrar e limpar
    HLayout painelBotoesNovoVeiculo = new HLayout();
    painelBotoesNovoVeiculo.setMembersMargin(15);
    painelBotoesNovoVeiculo.setAlign(Alignment.CENTER);
    //criando o formulrio que armazena os itens de cadastro Veiculo
    final DynamicForm formEditVeiculo = new DynamicForm();
    formEditVeiculo.setMargin(30);
    formEditVeiculo.setLayoutAlign(Alignment.CENTER);
    formEditVeiculo.setAutoFocus(true);

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

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

        @Override
        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
            LinkedHashMap<String, String> pl = new LinkedHashMap<>();
            if (result != null) {
                for (TreeMap<String, String> planos : result) {
                    pl.put(planos.get("codPlano"), planos.get("descricao"));
                    if (Integer.parseInt(planos.get("codPlano")) == 1) {
                        planoMaster = Double.parseDouble(planos.get("valor"));
                        //valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$" + Info.formataSaldo(Info.formataDecimal(planoMaster)) + " </h3></strong>");
                        //GWT.log("Master: " + planoMaster);
                    } else if (Integer.parseInt(planos.get("codPlano")) == 2) {
                        planoComodato = Double.parseDouble(planos.get("valor"));
                        // GWT.log("Comodato: " + planoComodato);
                    }
                }
                tipoPlano.setValueMap(pl);
                tipoPlano.setValue(dadosVeiculo.get(0).get("codPlano"));
            } else {
                pl.put("0", Info.titulosMsg.get("naoHaPlano"));
                tipoPlano.setValueMap(pl);
                tipoPlano.setValue("0");
            }

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

    final SelectItem gruposCliente = new SelectItem();

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

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

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

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

    final ComboBoxItem equipamento = new ComboBoxItem();
    equipamento.setAddUnknownValues(false);
    equipamento.setTitle(Info.titulosMsg.get("equipamento"));
    equipamento.setName("equipamento");
    LinkedHashMap<String, String> equip = new LinkedHashMap<>();
    conf = new LinkedHashMap<>();
    if (dadosVeiculo.get(0).get("codEquipamento") == null) {
        equip.put("0", "Sem equipamento");
        equipamento.setValueMap(equip);
        equipamento.setValue("0");
        conf.put("0", "Sem configuracao");
        itemConfiguracao.setValueMap(conf);
        itemConfiguracao.setValue("0");
        //addpadLig.setWidth(16);
        //addpadLig.setHeight(16);
        //addpadLig.disable();
    } else {
        //GWT.log("codEquipamento: " +dadosVeiculo.get(0).get("codEquipamento"));
        equip.put(dadosVeiculo.get(0).get("codEquipamento"),
                dadosVeiculo.get(0).get("idEquipamento") + " / " + dadosVeiculo.get(0).get("fabricanteMod")
                        + " / " + dadosVeiculo.get(0).get("descricaoModelo")
                        + ((codigoUnidade == 1) ? " / " + dadosVeiculo.get(0).get("nomeUnidade") : ""));
        equip.put("0", "Sem equipamento");
        equipamento.setValueMap(equip);
        equipamento.setValue(dadosVeiculo.get(0).get("codEquipamento"));
        itemConfiguracao.setHint("<nbr>*</nbr>");
        itemConfiguracao.setRequired(true);
        itemConfiguracao.setDisabled(false);
        Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(
                Integer.parseInt(dadosVeiculo.get(0).get("codEquipamento")),
                new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                    @Override
                    public void onSuccess(ArrayList<TreeMap<String, String>> fiosEquipamento) {
                        conf = new LinkedHashMap<>();
                        if (fiosEquipamento != null) {
                            arrrayFiosEquipamento = fiosEquipamento;
                            TreeMap<String, String> nome = new TreeMap<String, String>();
                            for (TreeMap<String, String> fio : fiosEquipamento) {
                                if (!nome.containsKey(fio.get("codMecf"))) {
                                    conf.put(fio.get("codMecf"),
                                            fio.get("nome") + " / " + fio.get("descricaomecf"));
                                    nome.put(fio.get("codMecf"), fio.get("nome"));
                                }
                                /*Record padLig = new Record();
                                 padLig.setAttribute("codPad", "0");
                                 padLig.setAttribute("corFio", fio.get("corFio"));
                                 padLig.setAttribute("sinalPad", (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo" : "Negativo");
                                 padLig.setAttribute("padraoLd", (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado" : "Desligado");
                                 padLig.setAttribute("funcaoPad", (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada" : "Sada");
                                 padLig.setAttribute("ativoPad", (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim" : "No");
                                 padLig.setAttribute("descricaoPad", (fio.get("descricao") == null || fio.get("descricao").equalsIgnoreCase("")) ? "Sem informao" : fio.get("descricao"));
                                 listPadLig.addData(padLig);*/
                            }
                            itemConfiguracao.setValueMap(conf);
                            itemConfiguracao.setValue(dadosVeiculo.get(0).get("configuracao"));

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

    equipamento.setHint("<nbr>*</nbr>");
    equipamento.setRequired(true);
    equipamento.setWidth(450);
    FormItemIcon editEquip = new FormItemIcon();
    editEquip.setSrc("[SKIN]actions/edit.png");
    editEquip.setName("editarEquip");
    editEquip.setPrompt(Info.titulosMsg.get("editarEquipamento"));
    equipamento.setIcons(editEquip);
    equipamento.addChangedHandler(new ChangedHandler() {

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

                Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(
                        Integer.parseInt((String) event.getValue()),
                        new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                            @Override
                            public void onSuccess(ArrayList<TreeMap<String, String>> fiosEquipamento) {
                                conf = new LinkedHashMap<>();
                                if (fiosEquipamento != null) {
                                    GWT.log("2 Equipamento maior que zero: ");
                                    arrrayFiosEquipamento = fiosEquipamento;
                                    GWT.log("3 Equipamento maior que zero: ");
                                    listPadLig.setData(new RecordList());
                                    GWT.log("4 Equipamento maior que zero: ");
                                    TreeMap<String, String> nome = new TreeMap<>();
                                    for (TreeMap<String, String> fio : fiosEquipamento) {
                                        if (!nome.containsKey(fio.get("codMecf"))) {

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

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

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

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

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

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

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

    editInstalador.addFormItemClickHandler(new FormItemClickHandler() {

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

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

    final ComboBoxItem indicado = new ComboBoxItem();
    indicado.setAddUnknownValues(false);
    indicado.setName("indicado");
    indicado.setTitle(Info.titulosMsg.get("indicado"));

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

    }

    indicado.setValueMap(valueMapVeic);
    indicado.setValue(valorAtual);
    //indicado.setRequired(true);
    indicado.setTooltip(Info.titulosMsg.get("adicionarIndicacao"));
    FormItemIcon icon = new FormItemIcon();
    icon.setSrc("[SKIN]actions/edit.png");
    icon.setName("editarIndicacao");
    icon.setPrompt(Info.titulosMsg.get("editarIndicacao"));
    indicado.setIcons(icon);
    indicado.setHint("<nbr>*</nbr>");
    indicado.setWidth(450);
    icon.addFormItemClickHandler(new FormItemClickHandler() {

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

    indicado.addChangedHandler(new ChangedHandler() {

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

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

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

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

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

                                }
                            });
                }
            }

            //validaPlaca = true;
        }
    });
    /*itemEstado.setTitle("Estado");
     itemEstado.setName("estado");*/
    itemEstado.setWidth(450);
    itemEstado.setAddUnknownValues(false);
    itemEstado.setHint("<nbr>*</nbr>");
    itemEstado.setRequired(true);

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

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

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

        }
    });
    itemEstado.setValue(dadosVeiculo.get(0).get("codEstado"));

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

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

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

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

                    }
                    itemCidade.setValueMap(valueMapCid);
                    itemCidade.setValue(dadosVeiculo.get(0).get("codCidade"));
                }

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

    itemEstado.addChangeHandler(new ChangeHandler() {

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

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

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

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

                            LinkedHashMap<String, String> valueMapCid = new LinkedHashMap<String, String>();
                            for (TreeMap<String, String> est : result) {
                                valueMapCid.put(est.get("codCidade"), est.get("nome"));
                            }
                            itemCidade.setValueMap(valueMapCid);
                            if (itemEstado.getValueAsString()
                                    .equalsIgnoreCase(dadosVeiculo.get(0).get("codEstado"))) {
                                itemCidade.setValue(dadosVeiculo.get(0).get("codCidade"));
                            } else {
                                itemCidade.setValue(result.get(0).get("codCidade"));
                            }
                        }

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

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

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

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

                                }

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

                                }
                            });
                }
            }

        }
    });

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

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

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

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

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

        @Override
        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
            if (result != null) {

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

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

    tipoVeiculo.setTitle(Info.titulosMsg.get("tipoVeiculo"));
    tipoVeiculo.setName("tipoVeiculo");
    tipoVeiculo.setAddUnknownValues(false);
    Info.dbService.buscarTodosTipoDeVeiculo(new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

        @Override
        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
            LinkedHashMap<String, String> tipoVeiculos = new LinkedHashMap<>();
            if (result != null) {
                for (TreeMap<String, String> tv : result) {
                    tipoVeiculos.put(tv.get("codTipo"), tv.get("descricao"));
                }
                tipoVeiculo.setValueMap(tipoVeiculos);
                if (verificaTipoVeiculo) {
                    //GWT.log("LInha verificaTipoVeiculo!"+dadosVeiculo.get(0).get("codTipo"));
                    verificaTipoVeiculo = false;
                    tipoVeiculo.setValue(dadosVeiculo.get(0).get("codTipo"));
                    buscarMarcas(Integer.parseInt(dadosVeiculo.get(0).get("codTipo")));
                } else {
                    if (tipoVeiculo.getValueAsString().equalsIgnoreCase(dadosVeiculo.get(0).get("codTipo"))) {
                        tipoVeiculo.setValue(dadosVeiculo.get(0).get("codTipo"));
                        buscarMarcas(Integer.parseInt(dadosVeiculo.get(0).get("codTipo")));
                    } else {
                        tipoVeiculo.setValue(result.get(0).get("codTipo"));
                        buscarMarcas(Integer.parseInt(result.get(0).get("codTipo")));
                    }
                }
            } else {
                tipoVeiculos.put("0", Info.titulosMsg.get("naoHaTipoVeiculo"));
                tipoVeiculo.setValueMap(tipoVeiculos);
                tipoVeiculo.setValue("0");
            }
        }
    });
    tipoVeiculo.setHint("<nbr>*</nbr>");
    tipoVeiculo.setRequired(true);
    tipoVeiculo.setWidth(450);
    tipoVeiculo.setValue(dadosVeiculo.get(0).get("codTipo"));

    tipoVeiculo.addChangedHandler(new ChangedHandler() {

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

    itemMarca.addChangedHandler(new ChangedHandler() {

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

    itemModelo.addChangedHandler(new ChangedHandler() {

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

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

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

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

    final TextItem desconto = new TextItem();
    desconto.setName("desconto");
    desconto.setTitle(Info.titulosMsg.get("desconto"));
    desconto.setKeyPressFilter("[0-9]");
    desconto.setValue(Info
            .formataSaldo(Info.formataDecimal(Double.parseDouble((dadosVeiculo.get(0).get("desconto") == null
                    || dadosVeiculo.get(0).get("desconto").equalsIgnoreCase("")) ? "0"
                            : dadosVeiculo.get(0).get("desconto")))));
    desconto.setWidth(450);
    desconto.setDisabled(true);
    if (Info.usuarioLogado.containsKey("4")) {
        desconto.setDisabled(false);
    }
    tipoCobranca.setTitle(Info.titulosMsg.get("tipoCobranca"));
    tipoCobranca.setName("tipoCobranca");
    //GWT.log("dadosVeiculoCopia.get(0).get(\"codPlano\") : "+dadosVeiculoCopia.get(0).get("codPlano"));
    //GWT.log("dadosVeiculoCopia.get(0).get(\"codTc\") : "+dadosVeiculoCopia.get(0).get("codTc"));
    Info.dbService.buscarTodosTipoCobranca(Integer.parseInt(dadosVeiculoCopia.get(0).get("codPlano")),
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

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

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

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

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

    tipoCobranca.addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {

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

    //final SelectItem itemPessoasAutorizadas = new SelectItem();
    itemPessoasAutorizadas.setTitle("Pessoas autorizadas");
    itemPessoasAutorizadas.setName("pessoasAutorizadas");
    itemPessoasAutorizadas.setMultiple(true);
    itemPessoasAutorizadas.setMultipleAppearance(MultipleAppearance.PICKLIST);
    itemPessoasAutorizadas.setTooltip("Pessoas autorizadas a rastrear os veculos do cliente");
    pessoasAutorizadasMap = new LinkedHashMap<>();
    Info.dbService.buscarPessoasAutorizadasPorCliente(codigoCliente,
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    if (result != null) {
                        //arrayPessoasAutorizadas = result;
                        tamanhoSelecionados = result.size();
                        //com.google.gwt.core.shared.GWT.log(" " + arrayPessoasAutorizadas);
                        TreeMap<String, String> pesAux = new TreeMap<>();
                        for (TreeMap<String, String> pes : result) {
                            if (pesAux.get(pes.get("codPessoa")) == null) {
                                //GWT.log("codPessoa: "+pes.get("codPessoa")); 
                                pessoasAutorizadasMap.put(pes.get("codPessoa"), pes.get("nome"));
                                pesAux.put(pes.get("codPessoa"), pes.get("codPessoa"));
                                arrayPessoasAutorizadas.add(pes);
                            }
                        }
                        itemPessoasAutorizadas.setValueMap(pessoasAutorizadasMap);
                        //itemPessoasAutorizadas.setValue(result.get(0).get("codPessoa"));
                        /*codPessoaAutorizada = Integer.parseInt(result.get(0).get("codPessoa"));
                         //TreeMap<String, String> pAux = new TreeMap<String, String>();
                         for (TreeMap<String, String> p : result) {
                         if (Integer.parseInt(p.get("codPessoa")) == codPessoaAutorizada && !pAux.containsKey(p.get("codPessoa"))) {
                         Record registro = new Record();
                         registro.setAttribute("codigoInterface", Integer.parseInt(p.get("codPessoa")));
                         registro.setAttribute("codigo", Integer.parseInt(p.get("codPessoa")));
                         registro.setAttribute("nomePes", p.get("nome"));
                         registro.setAttribute("telefonePes", (p.get("telefone") == null) ? "Sem informao" : Info.formataTelefone(p.get("telefone")));
                         //registro.setAttribute("telefone", (p.get("telefone") == null) ? "Sem informao" : p.get("telefone"));
                         registro.setAttribute("senha", p.get("senha"));
                         registro.setAttribute("senhaMascara", "********");
                         registro.setAttribute("descricaoPes", (p.get("descricao") == null) ? "Sem informao" : p.get("descricao"));
                         listPesAut.addData(registro);
                         pAux.put(p.get("codPessoa"), p.get("codPessoa"));
                         }
                         }*/
                    } else {
                        pessoasAutorizadasMap.put("0", "No h pessoas autorizadas a rastrear");
                        itemPessoasAutorizadas.setValueMap(pessoasAutorizadasMap);
                        itemPessoasAutorizadas.setValue("0");
                        //codPessoaAutorizada = 0;
                        itemPessoasAutorizadas.setDisabled(true);
                    }
                }
            });
    itemPessoasAutorizadas.setWidth(450);
    itemPessoasAutorizadas.addChangedHandler(new ChangedHandler() {

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

                }
            }
        }
    });

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

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

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

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

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

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

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

    final SectionStackSection formSection = new SectionStackSection();
    formSection.setTitle("Dados do Veculo");
    formSection.setItems(formEditVeiculo, valorMensalidade);
    formSection.setExpanded(true);
    if (dadosVeiculo.get(0).get("codPlano").equalsIgnoreCase("1")) {
        Info.dbService.buscarIndicacoesPorVeiculo(Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo")),
                new AsyncCallback<Integer>() {

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

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

        @Override
        public void onChanged(ChangedEvent event) {

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

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

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

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

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

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

                }
            }
        }

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

        @Override
        public void onChanged(ChangedEvent event) {

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

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

                            @Override
                            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                                LinkedHashMap<String, String> tpCob = new LinkedHashMap<>();
                                if (result != null) {
                                    for (TreeMap<String, String> tipoCob : result) {
                                        tpCob.put(tipoCob.get("codTipoCobranca"), tipoCob.get("descricao"));
                                    }
                                    tipoCobranca.setValueMap(tpCob);
                                    tipoCobranca.setValue(result.get(0).get("codTipoCobranca"));
                                    numeroDeParcelas(result.get(0).get("codTipoCobranca"));
                                    Info.dbService.buscarIndicacoesPorVeiculo(
                                            Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo")),
                                            new AsyncCallback<Integer>() {

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

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

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

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

                            @Override
                            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                                LinkedHashMap<String, String> tpCob = new LinkedHashMap<>();
                                if (result != null) {
                                    for (TreeMap<String, String> tipoCob : result) {
                                        tpCob.put(tipoCob.get("codTipoCobranca"), tipoCob.get("descricao"));
                                    }
                                    tipoCobranca.setValueMap(tpCob);
                                    tipoCobranca.setValue(result.get(0).get("codTipoCobranca"));
                                    numeroDeParcelas(result.get(0).get("codTipoCobranca"));
                                    if (desconto.getDisplayValue() != null
                                            && desconto.getDisplayValue().length() > 0) {
                                        double comodato = planoComodato
                                                - (Double.parseDouble(desconto.getDisplayValue()
                                                        .replaceAll("\\.", "").replaceAll(",", "\\.")));
                                        valorMensalidade.redraw();
                                        valorMensalidade.setContents(
                                                "<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                                                        + Info.formataSaldo(Info.formataDecimal(comodato))
                                                        + "</h3></strong>");

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

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

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

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

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

    //        addpadLig.addClickHandler(new ClickHandler() {
    //
    //            @Override
    //            public void onClick(ClickEvent event) {
    //                EditarNovoPadraoLigacao novPadLig = new EditarNovoPadraoLigacao(listPadLig, dadosVeiculoCopia);
    //                novPadLig.setAnimateTime(1200);
    //                novPadLig.animateShow(AnimationEffect.FADE);
    //
    //            }
    //        });
    //cria a sections email que ir guardar a grid
    final SectionStackSection padLigSection = new SectionStackSection();
    padLigSection.setTitle(Info.titulosMsg.get("padraoDeLigacao"));
    padLigSection.setItems(listPadLig);
    //padLigSection.setControls(addpadLig);
    padLigSection.setExpanded(true);
    //criando coluna para grid
    ListGridField antiga = new ListGridField("antiga", Info.titulosMsg.get("antiga"));
    antiga.setHidden(true);
    antiga.setAlign(Alignment.CENTER);
    ListGridField codigoPesInterface = new ListGridField("codigoInterface",
            Info.titulosMsg.get("tituloCodigo"));
    codigoPesInterface.setHidden(true);
    codigoPesInterface.setAlign(Alignment.CENTER);
    ListGridField codigoPesAut = new ListGridField("codigo", Info.titulosMsg.get("tituloCodigo"));
    codigoPesAut.setHidden(true);
    ListGridField nomePesAut = new ListGridField("nomePes", Info.titulosMsg.get("tituloNome"));
    nomePesAut.setWidth(400);
    nomePesAut.setAlign(Alignment.CENTER);
    //pega o valor do nmero do telefone
    ListGridField telefonePesAut = new ListGridField("telefonePes", Info.titulosMsg.get("tituloNumero"));
    telefonePesAut.setAlign(Alignment.CENTER);
    ListGridField senhaPes = new ListGridField("senha", Info.titulosMsg.get("tituloSenha"));
    senhaPes.setAlign(Alignment.CENTER);
    senhaPes.setHidden(true);
    ListGridField senhaPesAutMascara = new ListGridField("senhaMascara", Info.titulosMsg.get("tituloSenha"));
    senhaPesAutMascara.setAlign(Alignment.CENTER);
    //pega o valor da descrio
    ListGridField descPesAut = new ListGridField("descricaoPes", Info.titulosMsg.get("descricao"));
    descPesAut.setAlign(Alignment.CENTER);
    ListGridField editarPesAut = new ListGridField("editar", Info.titulosMsg.get("tituloEditar"));
    editarPesAut.setAlign(Alignment.CENTER);
    editarPesAut.setWidth(35);
    final ListGridField excluirPesAut = new ListGridField("excluir", Info.titulosMsg.get("tituloExcluir"));
    excluirPesAut.setAlign(Alignment.CENTER);
    excluirPesAut.setWidth(40);
    //adicionando na lista grid de Pessoa Autorizada
    listPesAut.setCanPickFields(false);
    listPesAut.setFields(codigoPesInterface, codigoPesAut, antiga, nomePesAut, telefonePesAut, senhaPes,
            senhaPesAutMascara, descPesAut, editarPesAut, excluirPesAut);
    listPesAut.setSortDirection(SortDirection.ASCENDING);
    listPesAut.setSortField("codigo");
    listPesAut.setCanSort(false);
    listPesAut.setShowRecordComponents(true);
    listPesAut.setShowRecordComponentsByCell(true);
    listPesAut.setShowAllRecords(true);
    listPesAut.setCanResizeFields(true);
    listPesAut.setSelectionType(SelectionStyle.SINGLE);

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

        }
    }
    if (arrayPessoasAutorizadas.size() > 0) {
        pessoasAntigas = pessoasSelecionadas = new String[arrayPessoasAutorizadas.size()];
        for (int i = 0; i < arrayPessoasAutorizadas.size(); i++) {
            pessoasSelecionadas[i] = arrayPessoasAutorizadas.get(i).get("codPessoa");
            pessoasAntigas[i] = arrayPessoasAutorizadas.get(i).get("codPessoa");
        }
        itemPessoasAutorizadas.setValues(pessoasSelecionadas);
    } else {
        pessoasAntigas = new String[0];
        pessoasSelecionadas = new String[0];
    }
    //GWT.log("arrayPessoasAutorizadas : "+arrayPessoasAutorizadas + " pessoasSelecionadas :  "+pessoasSelecionadas);  
    //criando seo
    final SectionStackSection pesAutSection = new SectionStackSection();
    pesAutSection.setTitle(Info.titulosMsg.get("pessoaAutorizada"));
    pesAutSection.setItems(listPesAut);
    pesAutSection.setControls(addPesAut);
    pesAutSection.setExpanded(true);
    //boto para adicionar nova linha na ListGrid telefone
    addPesAut.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            EditarNovaPessoaAutorizada novaPesAut = new EditarNovaPessoaAutorizada(listPesAut,
                    dadosVeiculoCopia, arrayPessoasAutorizadas, cliente.getValueAsString(),
                    itemPessoasAutorizadas, pessoasAutorizadasMap);
            novaPesAut.setAnimateTime(1200);
            novaPesAut.animateShow(AnimationEffect.FADE);
        }
    });

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

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

    } else {
        formEditVeiculo.showItem("numeroParcelas");
        formEditVeiculo.hideItem("itemOutraVenda");
        numeroParcelas.setRequired(true);
        itemOutraVenda.setRequired(false);
        tipoCobranca.setValue(dadosVeiculoCopia.get(0).get("codTc"));
        Info.dbService.buscarPorCodTipoPagamento(Integer.parseInt(dadosVeiculoCopia.get(0).get("codTc")),
                new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

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

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

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

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

                    }

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

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

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

                            @Override
                            public void onSuccess(Boolean veiculoAtualizado) {
                                GWT.log("Evento click! 13 " + veiculoAtualizado);
                                GWT.log("LInha 2140   VE?CULO ATUALIZADO: " + veiculoAtualizado);
                                if (Integer.parseInt(Info.usuarioLogado.get("codPerfil")) == 2
                                        || Integer.parseInt(Info.usuarioLogado.get("codPerfil")) == 3) {
                                    GWT.log("LInha 2142   VE?CULO ATUALIZADO: ");
                                    Info.dbService.buscarGrupoDoUsuario(
                                            Integer.parseInt(Info.usuarioLogado.get("codUsuario")),
                                            Integer.parseInt(Info.usuarioLogado.get("codPerfil")),
                                            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

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

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

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

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

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

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

                                                            }

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

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

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

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

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

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

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

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

    painelBotoesNovoVeiculo.addMember(salvar);

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

    addItem(painelpagina);

}

From source file:com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabFrota.java

public TabFrota() {

    //final MapaFrota mapa = new MapaFrota();
    //VLayout mapa = new VLayout();
    mapaFrotaOpenLayer = new MapaFrotaOpenLayer();

    /*Info.dbService.buscarVeiculoPorUsuarioLogadoFrota(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), new AsyncCallback<TreeMap<String, ArrayList<TreeMap<String, String>>>>() {
            /*from  www .  ja  va2 s .  co m*/
    @Override
    public void onFailure(Throwable caught) {
        Window.alert("buscarVeiculoPorUsuarioLogadoFrota - A remote interface failure !: "+caught.getMessage());
    }
            
    @Override
    public void onSuccess(TreeMap<String, ArrayList<TreeMap<String, String>>> result) {
        if (result != null) {
            setListaVeiculos(result);
        } else {
            GWT.log("Usurio sem veculo: " + Info.usuarioLogado.get("codUsuario"));
        }
    }
    });*/
    //Setando itens de configurao da tab
    setTitle(Info.titulosMsg.get("frota"));
    //criando o Vlayout que ir armazenar o painelNovoCliente
    HLayout painelPai = new HLayout();
    painelPai.setWidth100();
    painelPai.setHeight100();
    painelPai.setAlign(Alignment.CENTER);

    final SectionStackSection mapaSection = new SectionStackSection();
    mapaSection.setTitle(Info.titulosMsg.get("mapa"));//
    mapaSection.setExpanded(true);
    mapaFrotaOpenLayer.addDrawHandler(new DrawHandler() {

        @Override
        public void onDraw(DrawEvent event) {

            for (Map.Entry<String, Object> entrySet : TabInicio.listaVeiculos.entrySet()) {
                String key = entrySet.getKey();
                if (!key.equalsIgnoreCase("OFFSET") && !key.equalsIgnoreCase("MAXIMO")
                        && !key.equalsIgnoreCase("MINIMO") && !key.equalsIgnoreCase("ENDERECO")
                        && !key.equalsIgnoreCase("GRUPO")) {
                    //SC.say("DENTRO DO IF!");
                    ArrayList<TreeMap<String, String>> value = (ArrayList<TreeMap<String, String>>) entrySet
                            .getValue();
                    nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null)
                            ? "</strong></br>Cliente: <strong>" + value.get(0).get("nomeCliente") + "</strong>"
                            : "");

                    int direcaoPosicao = Integer.parseInt(value.get(0).get("codDirecao"));
                    //String icone = "";
                    if (value.get(0).get("ign").equalsIgnoreCase("false")) {
                        if (direcaoPosicao == 0) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/parado_desligado.png";
                        } else if (direcaoPosicao == 1) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/norte_desligado.png";
                        } else if (direcaoPosicao == 2) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/nordeste_desligado.png";
                        } else if (direcaoPosicao == 3) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/leste_desligado.png";
                        } else if (direcaoPosicao == 4) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudeste_desligado.png";
                        } else if (direcaoPosicao == 5) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sul_desligado.png";
                        } else if (direcaoPosicao == 6) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudoeste_desligado.png";
                        } else if (direcaoPosicao == 7) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/oeste_desligado.png";
                        } else if (direcaoPosicao == 8) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/noroeste_desligado.png";
                        }
                    } else {
                        if (direcaoPosicao == 0) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/parado_ligado.png";
                        } else if (direcaoPosicao == 1) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/norte_ligado.png";
                        } else if (direcaoPosicao == 2) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/nordeste_ligado.png";
                        } else if (direcaoPosicao == 3) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/leste_ligado.png";
                        } else if (direcaoPosicao == 4) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudeste_ligado.png";
                        } else if (direcaoPosicao == 5) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sul_ligado.png";
                        } else if (direcaoPosicao == 6) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudoeste_ligado.png";
                        } else if (direcaoPosicao == 7) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/oeste_ligado.png";
                        } else if (direcaoPosicao == 8) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/noroeste_ligado.png";
                        }
                    }
                    String dataHora = value.get(0).get("dataHoraString");
                    String vel = value.get(0).get("vel");
                    String ign = value.get(0).get("ign").equalsIgnoreCase("True") ? "Ligada" : "Desligada";
                    //String sat = veiculosAux.get(veiculosAux.firstKey()).get(0).get("sat");
                    double latitude = Double.parseDouble(value.get(0).get("lat"));
                    double longitude = Double.parseDouble(value.get(0).get("lon"));
                    String endereco = (value.get(0).get("endereco") == null)
                            ? "No h resoluo de endereo para este local"
                            : value.get(0).get("endereco");

                    nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null)
                            ? "</br><strong> Cliente: </strong>" + value.get(0).get("nomeCliente") + "</strong>"
                            : "");
                    String direcao = "</br><strong>Direo: </strong>" + value.get(0).get("direcao")
                            + nomeCliente;
                    String fabricanteStreet = "</br><strong>Fabricante: </strong>"
                            + value.get(0).get("fabricante");
                    String modeloStreet = "</br><strong>Modelo: </strong>" + value.get(0).get("modelo");
                    String corStreet = "</br><strong>Cor: </strong>" + value.get(0).get("cor");
                    String anoStreet = "</br><strong>Ano: </strong>" + value.get(0).get("ano");
                    String textPlaca = "<strong>Placa: </strong>" + value.get(0).get("placa");
                    //String grupoPlaca = (value.get(0).get("grupoPrincipal").equalsIgnoreCase("true")) ? "<strong>Placa: </strong>" + textPlaca : "<strong> Grupo: </strong>" + value.get(0).get("nomeGrupo") + "<br/><strong>Placa: </strong>" + textPlaca;
                    String textVeiculo = textPlaca + fabricanteStreet + modeloStreet + corStreet + anoStreet;
                    mapaFrotaOpenLayer.addMarker(longitude, latitude, textVeiculo, icone, 0, dataHora, vel, ign,
                            endereco, direcao);
                }

            }

        }
    });
    mapaSection.setItems(mapaFrotaOpenLayer);

    final ImgButton refreshMapa = new ImgButton();
    refreshMapa.setSrc("[SKIN]actions/refresh.png");
    refreshMapa.setTooltip("Atualizar mapa");
    refreshMapa.setSize(16);
    refreshMapa.setShowFocused(false);
    refreshMapa.setShowRollOver(false);
    refreshMapa.setShowDown(false);
    refreshMapa.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            mapaFrotaOpenLayer.getOsm_1().redraw();
        }
    });
    final ImgButton telaCheia = new ImgButton();
    telaCheia.setSrc("../imagens/fullscreen.png");
    telaCheia.setTooltip("Tela Cheia");
    telaCheia.setSize(16);
    telaCheia.setShowFocused(false);
    telaCheia.setShowRollOver(false);
    telaCheia.setShowDown(false);
    //telaCheia.setDisabled(true);
    telaCheia.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Info.telaCheia("map-frota");
        }
    });
    //        boolean internetExplore = false;
    //        internetExplore = Info.identificaNavegador();
    //        if (internetExplore) {
    mapaSection.setControls(refreshMapa);
    //        } else {
    //            mapaSection.setControls(telaCheia, refreshMapa);
    //        }      
    final SectionStack buscarClientes = new SectionStack();
    buscarClientes.setSections(mapaSection);
    buscarClientes.setVisibilityMode(VisibilityMode.MULTIPLE);
    buscarClientes.setAnimateSections(true);
    buscarClientes.setWidth100();
    buscarClientes.setHeight100();
    buscarClientes.setOverflow(Overflow.VISIBLE);

    painelPai.addMember(buscarClientes);
    setPane(painelPai);

    TabFrota.atualizaFrota = new Timer() {

        @Override
        public void run() {
            Record registro = new Record();
            registro.setAttribute("dataHoraReal", new Timestamp(System.currentTimeMillis()).getTime());
            registro.setAttribute("log",
                    "Linha da Thread atualizaFrota: "
                            + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM)
                                    .format(new Timestamp(System.currentTimeMillis())));
            TabLog.log.addData(registro);
            //Info.markersFrota.markersClearAllFrota(Info.markersFrota.markersValue());
            mapaFrotaOpenLayer.clearMarkers();
            for (Map.Entry<String, Object> entrySet : TabInicio.listaVeiculos.entrySet()) {
                String key = entrySet.getKey();
                if (!key.equalsIgnoreCase("OFFSET") && !key.equalsIgnoreCase("MAXIMO")
                        && !key.equalsIgnoreCase("MINIMO") && !key.equalsIgnoreCase("ENDERECO")
                        && !key.equalsIgnoreCase("GRUPO")) {
                    //SC.say("DENTRO DO IF!");
                    ArrayList<TreeMap<String, String>> value = (ArrayList<TreeMap<String, String>>) entrySet
                            .getValue();
                    nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null)
                            ? "</strong></br>Cliente: <strong>" + value.get(0).get("nomeCliente") + "</strong>"
                            : "");

                    int direcaoPosicao = Integer.parseInt(value.get(0).get("codDirecao"));
                    //String icone = "";
                    if (value.get(0).get("ign").equalsIgnoreCase("false")) {
                        if (direcaoPosicao == 0) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/parado_desligado.png";
                        } else if (direcaoPosicao == 1) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/norte_desligado.png";
                        } else if (direcaoPosicao == 2) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/nordeste_desligado.png";
                        } else if (direcaoPosicao == 3) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/leste_desligado.png";
                        } else if (direcaoPosicao == 4) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudeste_desligado.png";
                        } else if (direcaoPosicao == 5) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sul_desligado.png";
                        } else if (direcaoPosicao == 6) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudoeste_desligado.png";
                        } else if (direcaoPosicao == 7) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/oeste_desligado.png";
                        } else if (direcaoPosicao == 8) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/noroeste_desligado.png";
                        }
                    } else {
                        if (direcaoPosicao == 0) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/parado_ligado.png";
                        } else if (direcaoPosicao == 1) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/norte_ligado.png";
                        } else if (direcaoPosicao == 2) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/nordeste_ligado.png";
                        } else if (direcaoPosicao == 3) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/leste_ligado.png";
                        } else if (direcaoPosicao == 4) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudeste_ligado.png";
                        } else if (direcaoPosicao == 5) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sul_ligado.png";
                        } else if (direcaoPosicao == 6) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/sudoeste_ligado.png";
                        } else if (direcaoPosicao == 7) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/oeste_ligado.png";
                        } else if (direcaoPosicao == 8) {
                            icone = "./imagens/" + value.get(0).get("codIcone") + "/noroeste_ligado.png";
                        }
                    }
                    String dataHora = value.get(0).get("dataHoraString");
                    String vel = value.get(0).get("vel");
                    String ign = value.get(0).get("ign").equalsIgnoreCase("True") ? "Ligada" : "Desligada";
                    //String sat = veiculosAux.get(veiculosAux.firstKey()).get(0).get("sat");
                    double latitude = Double.parseDouble(value.get(0).get("lat"));
                    double longitude = Double.parseDouble(value.get(0).get("lon"));
                    String endereco = (value.get(0).get("endereco") == null)
                            ? "No h resoluo de endereo para este local"
                            : value.get(0).get("endereco");

                    nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null)
                            ? "</br><strong> Cliente: </strong>" + value.get(0).get("nomeCliente") + "</strong>"
                            : "");
                    String direcao = "</br><strong>Direo: </strong>" + value.get(0).get("direcao")
                            + nomeCliente;
                    String fabricanteStreet = "</br><strong>Fabricante: </strong>"
                            + value.get(0).get("fabricante");
                    String modeloStreet = "</br><strong>Modelo: </strong>" + value.get(0).get("modelo");
                    String corStreet = "</br><strong>Cor: </strong>" + value.get(0).get("cor");
                    String anoStreet = "</br><strong>Ano: </strong>" + value.get(0).get("ano");
                    String textPlaca = "<strong>Placa: </strong>" + value.get(0).get("placa");
                    String grupoPlaca = (value.get(0).get("grupoPrincipal").equalsIgnoreCase("true"))
                            ? "<strong>Placa: </strong>" + textPlaca
                            : "<strong> Grupo: </strong>" + value.get(0).get("nomeGrupo")
                                    + "<br/><strong>Placa: </strong>" + textPlaca;
                    String textVeiculo = textPlaca + fabricanteStreet + modeloStreet + corStreet + anoStreet;
                    mapaFrotaOpenLayer.addMarker(longitude, latitude, textVeiculo, icone, 0, dataHora, vel, ign,
                            endereco, direcao);
                    //Marker marker = new Marker(lat, lon, Info.mapaFrota, icone, placa, pointA, pointB, labelIcone, Info.markersFrota.markersValue());
                    //InfoWindow infoWindow = new InfoWindow();
                    //Info.mapaFrota.addListenerInfoWindow(infoWindow.value());
                    //Marker marcadorStreet = new Marker(latLng.value(), textPlaca, icone);
                    //Info.mapaFrota.addListenerStreetViewFrota(Info.mapaFrota.value(), marker.value(), marcadorStreet.value(), latLng.value(), infoWindow.value(), String.valueOf(textPlaca + i + "Fr"), textPlaca, dataHora, vel, ign, latitude, longitude, endereco, direcao, fabricanteStreet, modeloStreet, corStreet, anoStreet);
                    //Info.mapaFrota.addListenerInfoWindow(infoWindow.value());
                    //Info.markerArrayFrota.add(marker);
                    //GWT.log("Linha 176 - TabFrota"); 
                    //GWT.log("Linha veiculoAuxLat 02 : "+veiculosAux);
                    //veiculosAux.remove(veiculosAux.firstKey());
                }
                //else {
                //     SC.say("ERRO ao atualizar frota!"+key);
                //}

            }

        }
    };
    TabFrota.atualizaFrota.scheduleRepeating(60000);

}

From source file:com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabHistorico.java

public TabHistorico() {

    //SC.say("Lagura da tela: "+Info.larguraTela());
    TabHistorico.codPlacasHistorico = new TreeMap<>();
    TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA = false;
    //tabelaDesenhada = true;
    //this.timeZone = Info.timeZoneClient();
    /*if(timeZone.equalsIgnoreCase("0")){
     timeZone = "UTC";/*from   w  ww .j a  va 2 s.  c  o  m*/
     } else {
     timeZone = String.valueOf((-1) * (Integer.parseInt(timeZone) / 60));
     }*/
    //DateUtil.setDefaultDisplayTimezone(timeZone);
    this.indexVeiculoPlaca = 0;
    TabHistorico.dataSoucePlacas = new DataSource();
    TabHistorico.dataSoucePlacas.setClientOnly(true);
    DataSourceTextField codigoVeiculo = new DataSourceTextField("codigo", Info.titulosMsg.get("tituloCodigo"));
    codigoVeiculo.setHidden(true);
    codigoVeiculo.setRequired(true);
    //codigoVeiculo.setPrimaryKey(true);
    DataSourceTextField placaVeiculo = new DataSourceTextField("placa", Info.titulosMsg.get("placa"));
    placaVeiculo.setRequired(true);
    //placaVeiculo.setPrimaryKey(true);
    DataSourceTextField fabricanteDs = new DataSourceTextField("fabricante", Info.titulosMsg.get("fabricante"));
    fabricanteDs.setHidden(true);
    DataSourceTextField modeloDs = new DataSourceTextField("modelo", Info.titulosMsg.get("modelo"));
    modeloDs.setHidden(true);
    DataSourceTextField corDs = new DataSourceTextField("cor", Info.titulosMsg.get("cor"));
    corDs.setHidden(true);
    DataSourceTextField anoDs = new DataSourceTextField("ano", Info.titulosMsg.get("ano"));
    anoDs.setHidden(true);
    DataSourceTextField iconeVeiculo = new DataSourceTextField("icone", "?cone de veculo");
    iconeVeiculo.setHidden(true);
    DataSourceTextField grupoVeiculo = new DataSourceTextField("grupo", "Grupo");
    grupoVeiculo.setHidden(true);
    DataSourceTextField clienteGrid = new DataSourceTextField("cliente", "Cliente");
    clienteGrid.setHidden(true);
    TabHistorico.dataSoucePlacas.setFields(iconeVeiculo, codigoVeiculo, placaVeiculo, grupoVeiculo,
            fabricanteDs, modeloDs, corDs, anoDs, clienteGrid);

    final HLayout painelPai = new HLayout();
    painelPai.setWidth100();
    painelPai.setHeight100();
    painelPai.setAlign(Alignment.CENTER);

    //this.verificaLimpar = true;
    //TabHistorico.endereco = null;
    //TabHistorico.latitude = null;
    //TabHistorico.longitude = null;
    //TabHistorico.codUltimaPosicao = null;
    TabHistorico.posicoesSemEndereco = new ArrayList<>();
    //this.vintePosicoes = new ArrayList<>();

    TabHistorico.veiculos = new ListGrid();
    TabHistorico.veiculos.setSortDirection(SortDirection.ASCENDING);
    TabHistorico.veiculos.setSortField("placa");
    TabHistorico.veiculos.setWidth("10%");
    TabHistorico.veiculos.setSelectionType(SelectionStyle.SINGLE);
    TabHistorico.veiculos.setCanPickFields(false);
    TabHistorico.veiculos.setGroupByMaxRecords(100000);
    TabHistorico.veiculos.setAlternateRecordStyles(true);
    TabHistorico.veiculos.setCanGroupBy(true);
    TabHistorico.veiculos.setShowFilterEditor(true);
    TabHistorico.veiculos.setTooltip(Info.titulosMsg.get("listaVeiculos"));
    TabHistorico.veiculos.setFilterOnKeypress(true);
    TabHistorico.veiculos.setCanSort(false);

    TabHistorico.posicoesVeiculos = new ListGrid();
    TabHistorico.posicoesVeiculos.setCanPickFields(false);
    TabHistorico.posicoesVeiculos.setSelectionType(SelectionStyle.MULTIPLE);
    TabHistorico.posicoesVeiculos.setCanDragSelect(true);
    TabHistorico.posicoesVeiculos.setCanAutoFitFields(false);
    TabHistorico.posicoesVeiculos.setCanAutoFitFields(false);
    TabHistorico.posicoesVeiculos.setCanSort(false);
    TabHistorico.posicoesVeiculos.setCanGroupBy(false);
    TabHistorico.posicoesVeiculos.setCanFreezeFields(false);
    SortSpecifier sortSpecifier = new SortSpecifier("dataEhoraReal", SortDirection.DESCENDING);
    TabHistorico.posicoesVeiculos.setSort(sortSpecifier);
    TabHistorico.posicoesVeiculos.setLoadingDataMessage("Carregando posies...");
    TabHistorico.posicoesVeiculos.setProgressiveLoading(true);

    final VLayout mapaHistorico = new VLayout();
    mapaHistoricoOpenLayer = new MapaHistoricoOpenLayer();

    //TabHistorico.veiculos.setDataSource(dataSoucePlacas);
    //TabHistorico.veiculos.fetchData();
    Info.dbService.buscarVeiculoPorUsuarioLogadoHistorico(
            Integer.parseInt(Info.usuarioLogado.get("codUsuario")),
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                @Override
                public void onFailure(Throwable caught) {
                    SC.warn("Falha na conexo - VeiculoPorUsuarioLogadoHistorico");
                }

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    if (result != null) {
                        tamanhoListaVeiculos = result.size();
                        for (TreeMap<String, String> result1 : result) {
                            final ListGridRecord recordVeiculos = new ListGridRecord();
                            recordVeiculos.setAttribute("codigo", result1.get("codVeiculo"));
                            recordVeiculos.setAttribute("placa", result1.get("placa"));
                            recordVeiculos.setAttribute("fabricante", result1.get("fabricante"));
                            recordVeiculos.setAttribute("modelo", result1.get("modelo"));
                            recordVeiculos.setAttribute("cor", result1.get("cor"));
                            recordVeiculos.setAttribute("ano", result1.get("ano"));
                            recordVeiculos.setAttribute("icone", result1.get("codIcone"));
                            recordVeiculos.setAttribute("grupo", result1.get("nomeGrupo"));
                            recordVeiculos.setAttribute("cliente", result1.get("nomeCliente"));
                            TabHistorico.dataSoucePlacas.addData(recordVeiculos);
                            TabHistorico.codPlacasHistorico.put(result1.get("codVeiculo"),
                                    result1.get("codVeiculo"));
                        }
                        //TabHistorico.veiculos.setDataSource(dataSoucePlacas);
                        //TabHistorico.veiculos.fetchData();

                    } else {
                        //TabHistorico.veiculos.setData(new Record[0]);
                        SC.warn("O usurio no possui veculo");
                        //GWT.log("Lista de veculos do usurio  vazia!!! + linha 117 - TabHistorico");
                    }
                }
            });
    //Setando itens de configurao da tab
    setTitle(Info.titulosMsg.get("historico"));

    final DynamicForm formHistorico = new DynamicForm();
    formHistorico.setAutoFocus(true);
    formHistorico.setMargin(8);
    //formHistorico.setWidth(220);

    final DateTimeItem itemDataEhora = new DateTimeItem("dataEhora", "Incio");
    itemDataEhora.setHeight(18);
    itemDataEhora.setRequired(true);
    //itemDataEhora.setWidth(150);
    //this.timeZone = Info.timeZoneClient();
    DateUtil.setDefaultDisplayTimezone("-03:00");
    DateTimeFormat dateTimeFormat = DateTimeFormat.getFormat("dd/MM/yyyy HH:mm");
    TimeZoneConstants t = (TimeZoneConstants) GWT.create(TimeZoneConstants.class);
    TimeZone timeZone = TimeZone.createTimeZone(180);
    //itemDataEhora.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATETIME);        
    final Date dataOntem = new Date(System.currentTimeMillis() - 21600000);
    dateTimeFormat.format(dataOntem, timeZone);
    final Date dataAtual = new Date(System.currentTimeMillis());
    dateTimeFormat.format(dataAtual, timeZone);
    itemDataEhora.setDefaultValue(dateTimeFormat.format(
            new Date(dataOntem.getYear(), dataOntem.getMonth(), dataOntem.getDate(), 0, 0, 0), timeZone));
    itemDataEhora.setHint("<nbr>*</nbr>");
    itemDataEhora.setUseMask(true);

    /*final DateItem itemData = new DateItem();
     itemData.setTitle("Data");
     itemData.setName("dataAdesao");
     itemData.setUseTextField(true);
     itemData.setHint("<nbr>*</nbr>");
     itemData.setUseMask(true);
     itemData.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
     itemData.setRequired(true);
     itemData.setWidth(150);
     itemData.setValue(new Date(System.currentTimeMillis()));
            
     final TimeItem itemHora = new TimeItem("time", "Hora");  
     itemHora.setHint("<nbr>*</nbr>");  
     itemHora.setUseTextField(false);
     //itemHora.setWidth(100);
     itemHora.setValue(new Timestamp(Long.parseLong("-75600000")));*/
    formHistorico.setTitleWidth(300);
    formHistorico.setWidth("15%");
    formHistorico.setTitleOrientation(TitleOrientation.LEFT);
    formHistorico.setItems(itemDataEhora);

    final DynamicForm formHistoricoPara = new DynamicForm();
    formHistoricoPara.setMargin(8);
    formHistoricoPara.setWidth("15%");
    formHistoricoPara.setTitleWidth(300);
    formHistoricoPara.setTitleOrientation(TitleOrientation.LEFT);

    final DateTimeItem itemDataEhoraPara = new DateTimeItem("dataEhora", "Fim");
    itemDataEhoraPara.setRequired(true);
    itemDataEhoraPara.setHeight(18);
    //itemDataEhoraPara.setWidth(150);
    itemDataEhoraPara.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATETIME);
    itemDataEhoraPara.setDefaultValue(dateTimeFormat.format(
            new Date(dataAtual.getYear(), dataAtual.getMonth(), dataAtual.getDate(), 23, 59, 59), timeZone));
    itemDataEhoraPara.setHint("<nbr>*</nbr>");
    itemDataEhoraPara.setUseMask(true);
    /*final DateItem itemDataFim = new DateItem();
     itemDataFim.setTitle("Data");
     itemDataFim.setName("dataAdesao");
     itemDataFim.setUseTextField(true);
     itemDataFim.setHint("<nbr>*</nbr>");
     itemDataFim.setUseMask(true);
     itemDataFim.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
     itemDataFim.setRequired(true);
     itemDataFim.setWidth(150);
     itemDataFim.setValue(new Date(System.currentTimeMillis()));
            
     final TimeItem itemHoraFim = new TimeItem("time", "Hora");  
     itemHoraFim.setHint("<nbr>*</nbr>");  
     itemHoraFim.setUseTextField(false);
     //itemHoraFim.setWidth(100);
     itemHoraFim.setValue(new Timestamp(Long.parseLong("10799000")));*/

    /*final SelectItem itemIgnicao = new SelectItem("ignicao", "Ignio");
            LinkedHashMap<String, String> sn = new LinkedHashMap<>();
            sn.put("0", "Ambos");
            sn.put("True", "Ligado");
            sn.put("False", "Desligado");
            itemIgnicao.setValueMap(sn);
            itemIgnicao.setHint("<nbr>*</nbr>");
            itemIgnicao.setRequired(true);
            itemIgnicao.setWidth(150);
            itemIgnicao.setValue("0");*/

    /*final SelectItem itemBloqueio = new SelectItem("ignicao", "Bloqueio");
            LinkedHashMap<String, String> bq = new LinkedHashMap<>();
            bq.put("0", "Ambos");
            bq.put("True", "Desbloqueado");
            bq.put("False", "Bloqueado");
            itemBloqueio.setValueMap(bq);
            itemBloqueio.setHint("<nbr>*</nbr>");
            itemBloqueio.setRequired(true);
            itemBloqueio.setWidth(150);
            itemBloqueio.setValue("0");*/
    formHistoricoPara.setItems(itemDataEhoraPara);

    final Label labelTitulo = new Label("<h3><center>Histrico de veculo</center></h3>");
    //labelTitulo.setWidth(200);
    labelTitulo.setHeight(5);
    final Label labelIncio = new Label("<h3><center>Incio</center></h3>");
    //labelIncio.setWidth(200);
    labelIncio.setHeight(5);
    final Label labelFim = new Label("<h3><center>Trmino</center></h3>");
    //labelFim.setWidth(200);
    labelFim.setHeight(5);

    HLayout hButoes = new HLayout();
    //hButoes.setWidth(200);
    //hButoes.setMembersMargin(3);
    hButoes.setLayoutAlign(Alignment.CENTER);
    hButoes.setAlign(Alignment.LEFT);
    final IButton pesquisar = new IButton("Pesquisar");
    pesquisar.setHeight(18);
    final IButton limpar = new IButton("Limpar");
    limpar.setHeight(18);
    hButoes.setMargin(8);
    hButoes.setMembersMargin(5);
    hButoes.addMember(pesquisar);
    hButoes.addMember(limpar);

    infoVeiculo.setHeight(30);
    infoVeiculo.setWidth("80%");
    labelPosicoesSemEndereco.setHeight(30);
    labelPosicoesSemEndereco.setWidth("20%");
    final Label html = new Label();
    html.setContents("<a href=\"#\">"
            + "<img src=\"./imagens/excel.png\" title=\"Baixar histrico - Excel\" width=\"25\" height=\"25\" />"
            + "</a>" + "<a href=\"#\">"
            + "<img src=\"./imagens/pdf.png\" title=\"Baixar histrico - PDF\" width=\"25\" height=\"25\" />"
            + "</a>");
    html.setWidth(60);
    html.setAlign(Alignment.CENTER);

    mapaHistorico.addDrawHandler(new DrawHandler() {

        @Override
        public void onDraw(DrawEvent event) {

            //Info.atualizaPosicoesSemEnderecoHistorico.scheduleRepeating(5000);
            final String codVeiculoGrid = TabHistorico.veiculos.getSelectedRecord().getAttribute("codigo");
            Timestamp dataInicio = new Timestamp(itemDataEhora.getValueAsDate().getTime());
            Timestamp dataFim = new Timestamp(itemDataEhoraPara.getValueAsDate().getTime());
            infoVeiculo.redraw();
            infoVeiculo.setContents("<strong style=\"font-size:15px; \">" + Info.titulosMsg.get("placa") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa") + " "
                    + Info.titulosMsg.get("fabricante") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("fabricante") + " "
                    + Info.titulosMsg.get("modelo") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("modelo") + " "
                    + Info.titulosMsg.get("cor") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("cor") + " "
                    + Info.titulosMsg.get("ano") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("ano")
                    + ".</strong>  Percorridos: 0 metros. Tempo : 0.");

            Info.abrirJanelaCarregando();

            Info.dbService.buscarPosicoesPorIntervaloData(codVeiculoGrid, dataInicio, dataFim,
                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                        @Override
                        public void onFailure(Throwable caught) {
                            Info.fecharJanelaCarrgando();
                            SC.warn("Falha na conexo - PosicoesPorIntervaloData");
                        }

                        @Override
                        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                            if (result != null) {

                                Info.fecharJanelaCarrgando();

                                verificaTeste = i = 1;
                                for (TreeMap<String, String> posicoes : result) {
                                    //if(posicoes.get("placa").equalsIgnoreCase(placaVeiculo)) {                       
                                    Record registro = new Record();
                                    registro.setAttribute("contador", i);
                                    registro.setAttribute("google",
                                            "<a  href=\"http://maps.google.com.br/maps?q=" + posicoes.get("lat")
                                                    + "," + posicoes.get("lon")
                                                    + "\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>");
                                    registro.setAttribute("codPosicao",
                                            Integer.parseInt(posicoes.get("codigo")));
                                    registro.setAttribute("lat", posicoes.get("lat"));
                                    registro.setAttribute("lon", posicoes.get("lon"));
                                    registro.setAttribute("dataEhoraReal",
                                            Long.parseLong(posicoes.get("dataHora")));
                                    //DateUtil.setDefaultDisplayTimezone("-03:00");
                                    //registro.setAttribute("dataEhora", DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM).format(new Timestamp(Long.parseLong(posicoes.get("dataHora"))), TimeZone.createTimeZone(120)));
                                    registro.setAttribute("dataEhora", posicoes.get("dataHoraString"));
                                    //registro.setAttribute("sat", posicoes.get("sat"));
                                    registro.setAttribute("sat", posicoes.get("sat")
                                            + " <img src=\"../imagens/satelite.png\" width=\"16\" height=\"16\" alt=\"Satlite\" title=\"Satlite\"/>");
                                    //registro.setAttribute("gps", posicoes.get("gps"));
                                    registro.setAttribute("gps",
                                            (posicoes.get("gps").equalsIgnoreCase("0"))
                                                    ? "<nbr class=\"positivo\">Atualizado</nbr>"
                                                    : "<nbr class=\"alerta\">Memria</nbr>");
                                    registro.setAttribute("vel", posicoes.get("vel"));
                                    registro.setAttribute("ignReal", Boolean.parseBoolean(posicoes.get("ign")));
                                    registro.setAttribute("ign", (Boolean.parseBoolean(posicoes.get("ign")))
                                            ? "<img src=\"../imagens/ignligada.png\" width=\"16\" height=\"16\" alt=\"Ligada\" title=\"Ligada\"/>"
                                            : "<img src=\"../imagens/igndesligada.png\" width=\"16\" height=\"16\" alt=\"desligada\"  title=\"Desligada\"/>");
                                    registro.setAttribute("entrada", posicoes.get("entrada"));
                                    registro.setAttribute("saida", posicoes.get("saida"));
                                    registro.setAttribute("evento", posicoes.get("evento"));
                                    registro.setAttribute("endereco",
                                            (posicoes.get("endereco") == null) ? "Sem endereo"
                                                    : posicoes.get("endereco"));
                                    registro.setAttribute("codDirecao", posicoes.get("codDirecao"));
                                    registro.setAttribute("direcao", posicoes.get("direcao"));
                                    TabHistorico.posicoesVeiculos.addData(registro);
                                    i++;
                                    if (posicoes.get("endereco") == null) {
                                        TabHistorico.posicoesSemEndereco.add(registro);
                                    }
                                }
                                //                            TabHistorico.posicoesVeiculos.selectRecord(0, true);
                                ListGridRecord marcadorInicio = posicoesVeiculos.getRecord(0);
                                //                            Info.mapaHistorico.setZoom(16);
                                //                            LatLng latLng = new LatLng(marcadorInicio.getAttributeAsDouble("lat"), marcadorInicio.getAttributeAsDouble("lon"));
                                //                            Info.mapaHistorico.panTo(latLng.value());
                                //                            //Info.polyHistorico.setMap(Info.mapaHistorico.value());
                                //                            nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null) ? "</strong></br>Cliente: <strong>" + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("cliente") + "</strong>" : "");
                                //                            
                                if (marcadorInicio.getAttributeAsString("ignReal").equalsIgnoreCase("false")) {
                                    if (direcaoPosicao == 0) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/parado_desligado.png";
                                    } else if (direcaoPosicao == 1) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/norte_desligado.png";
                                    } else if (direcaoPosicao == 2) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/nordeste_desligado.png";
                                    } else if (direcaoPosicao == 3) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/leste_desligado.png";
                                    } else if (direcaoPosicao == 4) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/sudeste_desligado.png";
                                    } else if (direcaoPosicao == 5) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/sul_desligado.png";
                                    } else if (direcaoPosicao == 6) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/sudoeste_desligado.png";
                                    } else if (direcaoPosicao == 7) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/oeste_desligado.png";
                                    } else if (direcaoPosicao == 8) {
                                        icone = "./imagens/" + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttribute("icone") + "/noroeste_desligado.png";
                                    }

                                } else if (direcaoPosicao == 0) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/parado_ligado.png";
                                } else if (direcaoPosicao == 1) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/norte_ligado.png";
                                } else if (direcaoPosicao == 2) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/nordeste_ligado.png";
                                } else if (direcaoPosicao == 3) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/leste_ligado.png";
                                } else if (direcaoPosicao == 4) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/sudeste_ligado.png";
                                } else if (direcaoPosicao == 5) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/sul_ligado.png";
                                } else if (direcaoPosicao == 6) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/sudoeste_ligado.png";
                                } else if (direcaoPosicao == 7) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/oeste_ligado.png";
                                } else if (direcaoPosicao == 8) {
                                    icone = "./imagens/"
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("icone")
                                            + "/noroeste_ligado.png";
                                }
                                //Marker marker = new Marker(marcadorInicio.getAttributeAsDouble("lat"), marcadorInicio.getAttributeAsDouble("lon"), Info.mapaHistorico, icone, TabHistorico.veiculos.getSelectedRecord().getAttribute("placa"), Info.polyHistorico.value(), Info.markersHistorico.markersValue(), 0);
                                //                            InfoWindow infoWindow = new InfoWindow();
                                //                            Info.mapaHistorico.addListenerInfoWindow(infoWindow.value());
                                String placa = TabHistorico.veiculos.getSelectedRecord().getAttribute("placa");
                                String data = marcadorInicio.getAttributeAsString("dataEhora");
                                String velocidade = marcadorInicio.getAttributeAsString("vel");
                                String ignicao = marcadorInicio.getAttributeAsString("ignReal")
                                        .equalsIgnoreCase("false") ? "Desligada" : "Ligada";
                                double latitudePosicao = marcadorInicio.getAttributeAsDouble("lat");
                                double longitudePosicao = marcadorInicio.getAttributeAsDouble("lon");
                                String enderecoPosicao = (marcadorInicio.getAttributeAsString("endereco")
                                        .equalsIgnoreCase("Sem endereo")
                                                ? "No h resoluo de endereo para este local"
                                                : marcadorInicio.getAttributeAsString("endereco"));
                                nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null)
                                        ? "</br><strong> Cliente: </strong>" + TabHistorico.veiculos
                                                .getSelectedRecord().getAttributeAsString("cliente")
                                                + "</strong>"
                                        : "");
                                String direcao = "</br><strong>Direo: </strong> "
                                        + marcadorInicio.getAttributeAsString("direcao") + nomeCliente;
                                GWT.log("mapaHistoricoOpenLayer 01");
                                //mapaHistoricoOpenLayer.addMarker(longitudePosicao, latitudePosicao, placa, icone, 0, data, velocidade, ignicao, enderecoPosicao, direcao);
                                GWT.log("mapaHistoricoOpenLayer 02");
                                //                            String data = marcadorInicio.getAttributeAsString("dataEhora");
                                //                            String velocidade = marcadorInicio.getAttributeAsString("vel");
                                //                            String ignicao = marcadorInicio.getAttributeAsString("ignReal").equalsIgnoreCase("false") ? "Desligada" : "Ligada";
                                //                            String latitudeVeiculo = marcadorInicio.getAttributeAsString("lat");
                                //                            String longitudeVeiculo = marcadorInicio.getAttributeAsString("lon");
                                //                            String enderecoVeiculo = (marcadorInicio.getAttributeAsString("endereco").equalsIgnoreCase("Sem endereo")) ? "No h resoluo de endereo para este local" : marcadorInicio.getAttributeAsString("endereco");
                                //                            Marker marcadorStreet = new Marker(latLng.value(), placa, icone);
                                //Info.mapaHistorico.addListenerStreetView(Info.mapaHistorico.value(), marker.value(), marcadorStreet.value(), latLng.value(), infoWindow.value(), String.valueOf(i + "Hr"), placa, data, velocidade, ignicao, latitudeVeiculo, longitudeVeiculo, enderecoVeiculo, direcao);
                                infoVeiculo.redraw();
                                //GWT.log("TimeZone client - addDrawHandler: " + timeZone);
                                infoVeiculo.setContents("<strong style=\"font-size:15px; \">"
                                        + Info.titulosMsg.get("placa") + ": " + placa + " "
                                        + Info.titulosMsg.get("fabricante") + ": "
                                        + TabHistorico.veiculos.getSelectedRecord()
                                                .getAttributeAsString("fabricante")
                                        + " " + Info.titulosMsg.get("modelo") + ": "
                                        + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString(
                                                "modelo")
                                        + " " + Info.titulosMsg.get("cor") + ": "
                                        + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("cor")
                                        + " " + Info.titulosMsg.get("ano") + ": "
                                        + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("ano")
                                        + ".</strong>  Percorridos: 0 metros. Tempo : 0.");
                                html.redraw();
                                html.setContents("<a href=\"./ExcelServlet?placa="
                                        + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa")
                                        + "&dataInicio=" + itemDataEhora.getValueAsDate().getTime() + ""
                                        + "&dataFim=" + itemDataEhoraPara.getValueAsDate().getTime() + "\">"
                                        + "<img src=\"./imagens/excel.png\" title=\"Baixar histrico - Excel\" width=\"25\" height=\"25\" />"
                                        + "</a>" + "<a href=\"./PdfServlet?cod="
                                        + TabHistorico.veiculos.getSelectedRecord().getAttribute("codigo")
                                        + "&placa="
                                        + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa")
                                        + "&dataInicio=" + itemDataEhora.getValueAsDate().getTime() + ""
                                        + "&dataFim=" + itemDataEhoraPara.getValueAsDate().getTime() + "\">"
                                        + "<img src=\"./imagens/pdf.png\" title=\"Baixar histrico - PDF\" width=\"25\" height=\"25\" />"
                                        + "</a>");
                                //Info.atualizaEnderecosHistorico.scheduleRepeating(5000);
                            } else {
                                //posicoesVeiculos.setData(new Record[0]);
                                Info.fecharJanelaCarrgando();
                                SC.warn("Este intervalo de datas no possui posies!");
                                GWT.log("ERRO ao listar posicoes dos veculos! HistricoInicial");
                            }
                        }
                    });

        }
    });
    //GWT.log("Info.timeZoneClient() : " + timeZone);

    //        final HLayout janelaCarregando = new HLayout();
    //        janelaCarregando.setWidth100();
    //        janelaCarregando.setHeight100();
    //        janelaCarregando.setShowEdges(false);
    //        janelaCarregando.setLayoutAlign(Alignment.CENTER);
    //        janelaCarregando.setAlign(Alignment.CENTER);
    //        
    //        final VLayout janela = new VLayout();
    //        janela.setBackgroundColor("#1BAEAE");
    //        janela.setWidth(200);
    //        janela.setHeight(45);
    //        janela.setShowEdges(false);
    //        
    //        janela.setLayoutAlign(Alignment.CENTER);
    //        janelaCarregando.addMember(janela);
    pesquisar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            final Timestamp dataInicio = new Timestamp(itemDataEhora.getValueAsDate().getTime());
            final Timestamp dataFim = new Timestamp(itemDataEhoraPara.getValueAsDate().getTime());
            //GWT.log("dataInicio: "+dataInicio.getTime());
            //GWT.log("dataFim: "+dataFim.getTime());

            if (formHistorico.validate() && formHistoricoPara.validate()
                    && dataFim.getTime() > dataInicio.getTime()) {
                Info.abrirJanelaCarregando();
                final String codVeiculoGrid = TabHistorico.veiculos.getSelectedRecord().getAttribute("codigo");
                i = 1;
                TabHistorico.posicoesVeiculos.setData(new Record[0]);
                TabHistorico.posicoesSemEndereco.clear();

                Info.dbService.buscarPosicoesPorIntervaloData(codVeiculoGrid, dataInicio, dataFim,
                        new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                            @Override
                            public void onFailure(Throwable caught) {
                                Info.fecharJanelaCarrgando();
                                SC.warn("Falha na conexo - PosicoesPorIntervaloData");
                            }

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

                                if (result != null) {
                                    Info.fecharJanelaCarrgando();
                                    html.redraw();
                                    html.setContents("<a href=\"./ExcelServlet?placa="
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa")
                                            + "&dataInicio=" + itemDataEhora.getValueAsDate().getTime() + ""
                                            + "&dataFim=" + itemDataEhoraPara.getValueAsDate().getTime() + "\">"
                                            + "<img src=\"./imagens/excel.png\" title=\"Baixar histrico - Excel\" width=\"25\" height=\"25\" />"
                                            + "</a>" + "<a href=\"./PdfServlet?cod="
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("codigo")
                                            + "&placa="
                                            + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa")
                                            + "&dataInicio=" + itemDataEhora.getValueAsDate().getTime() + ""
                                            + "&dataFim=" + itemDataEhoraPara.getValueAsDate().getTime() + "\">"
                                            + "<img src=\"./imagens/pdf.png\" title=\"Baixar histrico - PDF\" width=\"25\" height=\"25\" />"
                                            + "</a>");
                                    //setPosicoesVeiculo(result);
                                    for (TreeMap<String, String> posicoes : result) {
                                        //if(posicoes.get("placa").equalsIgnoreCase(placaVeiculo)) {                       
                                        Record registro = new Record();
                                        registro.setAttribute("contador", i);
                                        registro.setAttribute("google",
                                                "<a  href=\"http://maps.google.com.br/maps?q="
                                                        + posicoes.get("lat") + "," + posicoes.get("lon")
                                                        + "\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>");
                                        registro.setAttribute("codPosicao",
                                                Integer.parseInt(posicoes.get("codigo")));
                                        registro.setAttribute("lat", posicoes.get("lat"));
                                        registro.setAttribute("lon", posicoes.get("lon"));
                                        registro.setAttribute("dataEhoraReal",
                                                Long.parseLong(posicoes.get("dataHora")));
                                        //DateUtil.setDefaultDisplayTimezone("-03:00");
                                        //registro.setAttribute("dataEhora", DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM).format(new Timestamp(Long.parseLong(posicoes.get("dataHora"))), TimeZone.createTimeZone(120)));
                                        registro.setAttribute("dataEhora", posicoes.get("dataHoraString"));
                                        //registro.setAttribute("sat", posicoes.get("sat"));
                                        registro.setAttribute("sat", posicoes.get("sat")
                                                + " <img src=\"../imagens/satelite.png\" width=\"16\" height=\"16\" alt=\"Satlite\" title=\"Satlite\"/>");
                                        //registro.setAttribute("gps", posicoes.get("gps"));
                                        registro.setAttribute("gps",
                                                (posicoes.get("gps").equalsIgnoreCase("0"))
                                                        ? "<nbr class=\"positivo\">Atualizado</nbr>"
                                                        : "<nbr class=\"alerta\">Memria</nbr>");
                                        registro.setAttribute("vel", posicoes.get("vel"));
                                        registro.setAttribute("ignReal",
                                                Boolean.parseBoolean(posicoes.get("ign")));
                                        registro.setAttribute("ign", (Boolean.parseBoolean(posicoes.get("ign")))
                                                ? "<img src=\"../imagens/ignligada.png\" width=\"16\" height=\"16\" alt=\"Ligada\" title=\"Ligada\"/>"
                                                : "<img src=\"../imagens/igndesligada.png\" width=\"16\" height=\"16\" alt=\"desligada\"  title=\"Desligada\"/>");
                                        registro.setAttribute("entrada", posicoes.get("entrada"));
                                        registro.setAttribute("saida", posicoes.get("saida"));
                                        registro.setAttribute("evento", posicoes.get("evento"));
                                        registro.setAttribute("endereco",
                                                (posicoes.get("endereco") == null) ? "Sem endereo"
                                                        : posicoes.get("endereco"));
                                        registro.setAttribute("codDirecao", posicoes.get("codDirecao"));
                                        registro.setAttribute("direcao", posicoes.get("direcao"));
                                        TabHistorico.posicoesVeiculos.addData(registro);
                                        i++;
                                        if (posicoes.get("endereco") == null) {
                                            TabHistorico.posicoesSemEndereco.add(registro);
                                        }
                                    }
                                    TabHistorico.posicoesVeiculos.selectRecord(0, true);
                                    infoVeiculo.redraw();
                                    infoVeiculo
                                            .setContents("<strong style=\"font-size:15px; \">"
                                                    + Info.titulosMsg.get("placa") + ": "
                                                    + TabHistorico.veiculos.getSelectedRecord()
                                                            .getAttribute("placa")
                                                    + " " + Info.titulosMsg.get("fabricante") + ": "
                                                    + TabHistorico.veiculos.getSelectedRecord()
                                                            .getAttributeAsString("fabricante")
                                                    + " " + Info.titulosMsg.get("modelo") + ": "
                                                    + TabHistorico.veiculos.getSelectedRecord()
                                                            .getAttributeAsString("modelo")
                                                    + " " + Info.titulosMsg.get("cor") + ": "
                                                    + TabHistorico.veiculos.getSelectedRecord()
                                                            .getAttributeAsString("cor")
                                                    + " " + Info.titulosMsg.get("ano") + ": "
                                                    + TabHistorico.veiculos.getSelectedRecord()
                                                            .getAttributeAsString("ano")
                                                    + ".</strong>  Percorridos: 0 metros. Tempo : 0.");
                                } else {
                                    Info.fecharJanelaCarrgando();
                                    SC.warn("Este intervalo de datas no possui posies!");
                                    //GWT.log("ERRO ao listar posicoes dos veculos! Histrico");
                                }
                            }
                        });
            } else if (formHistorico.validate(false) && formHistoricoPara.validate(false)
                    && dataFim.getTime() < dataInicio.getTime()) {
                SC.warn("A data final  menor que a data inicial!");
                formHistoricoPara.focusInItem(itemDataEhoraPara);
            }

        }
    });

    limpar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            itemDataEhora.redraw();
            itemDataEhora.setValue(
                    new Date(dataAtual.getYear(), dataAtual.getMonth(), dataAtual.getDate(), 0, 0, 0));
            itemDataEhoraPara.redraw();
            itemDataEhoraPara.setValue(
                    new Date(dataAtual.getYear(), dataAtual.getMonth(), dataAtual.getDate(), 23, 59, 59));
        }
    });

    final HLayout painelFormulario = new HLayout();
    painelFormulario.setWidth((Info.larguraTela() - (Info.larguraTela() / 2)));
    painelFormulario.setLayoutAlign(Alignment.CENTER);
    painelFormulario.setMembersMargin(3);
    painelFormulario.addMember(formHistorico);
    painelFormulario.addMember(formHistoricoPara);
    painelFormulario.addMember(hButoes);

    final VLayout painelFormularioMapa = new VLayout();

    painelFormularioMapa.addMember(mapaHistoricoOpenLayer);

    final ImgButton refreshMapa = new ImgButton();
    refreshMapa.setSrc("[SKIN]actions/refresh.png");
    refreshMapa.setTooltip("Atualizar mapa");
    refreshMapa.setSize(16);
    refreshMapa.setShowFocused(false);
    refreshMapa.setShowRollOver(false);
    refreshMapa.setShowDown(false);
    refreshMapa.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            mapaHistoricoOpenLayer.getOsm_1().redraw();
        }
    });

    final ImgButton addPlacas = new ImgButton();
    addPlacas.setSrc("[SKIN]actions/add.png");
    addPlacas.setTooltip("Maximizar lista de veculos");
    addPlacas.setSize(16);
    addPlacas.setShowFocused(false);
    addPlacas.setShowRollOver(false);
    addPlacas.setShowDown(false);
    addPlacas.setDisabled(true);

    final ImgButton removePlacas = new ImgButton();
    removePlacas.setSrc("[SKIN]actions/remove.png");
    removePlacas.setTooltip("Minimizar lista de veculos");
    removePlacas.setSize(16);
    removePlacas.setShowFocused(false);
    removePlacas.setShowRollOver(false);
    removePlacas.setShowDown(false);
    removePlacas.setDisabled(true);

    addPlacas.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            painelSectionPlacas.setAnimateTime(1200);
            painelSectionPlacas.animateShow(AnimationEffect.FADE);
            addPlacas.setDisabled(true);
            removePlacas.setDisabled(false);
        }
    });

    removePlacas.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            painelSectionPlacas.setAnimateTime(1200);
            painelSectionPlacas.animateHide(AnimationEffect.FADE);
            addPlacas.setDisabled(false);
            removePlacas.setDisabled(true);
            //painelFormulario.hide();
        }
    });

    final ImgButton telaCheia = new ImgButton();
    telaCheia.setSrc("../imagens/fullscreen.png");
    telaCheia.setTooltip("Tela Cheia");
    telaCheia.setSize(16);
    telaCheia.setShowFocused(false);
    telaCheia.setShowRollOver(false);
    telaCheia.setShowDown(false);
    //telaCheia.setDisabled(true);
    telaCheia.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Info.telaCheia("map-historico");
        }
    });

    final SectionStackSection mapaSection = new SectionStackSection();
    mapaSection.setTitle(Info.titulosMsg.get("mapa"));//
    mapaSection.setExpanded(true);
    //        boolean internetExplore = false;
    //        internetExplore = Info.identificaNavegador();
    //        if (internetExplore) {
    mapaSection.setControls(painelFormulario, refreshMapa, addPlacas, removePlacas);
    //        } else {
    //            mapaSection.setControls(painelFormulario, telaCheia, refreshMapa, addPlacas, removePlacas);
    //        }      
    mapaSection.setResizeable(true);
    mapaSection.setItems(painelFormularioMapa);

    final HLayout painelLabelsInfomacoes = new HLayout();
    painelLabelsInfomacoes.setHeight(32);
    painelLabelsInfomacoes.addMember(infoVeiculo);
    painelLabelsInfomacoes.addMember(labelPosicoesSemEndereco);
    final VLayout painelGridVeiculos = new VLayout();
    //painelGridVeiculos.setMembersMargin(10);
    painelGridVeiculos.addMember(painelLabelsInfomacoes);
    painelGridVeiculos.addMember(TabHistorico.posicoesVeiculos);
    painelGridVeiculos.setHeight100();

    final HLayout painelGridInfoVeiculo = new HLayout();
    painelGridInfoVeiculo.setMembersMargin(5);
    painelGridInfoVeiculo.addMember(TabHistorico.veiculos);
    painelGridInfoVeiculo.addMember(painelGridVeiculos);
    painelGridInfoVeiculo.setHeight("28%");

    final SectionStackSection dadosSection = new SectionStackSection();
    dadosSection.setTitle(Info.titulosMsg.get("dadosVeiculo"));
    dadosSection.setItems(painelGridInfoVeiculo);
    dadosSection.setExpanded(true);
    dadosSection.setControls(html);

    final SectionStack buscarClientes = new SectionStack();
    buscarClientes.setSections(mapaSection, dadosSection);
    buscarClientes.setVisibilityMode(VisibilityMode.MULTIPLE);
    buscarClientes.setAnimateSections(true);
    buscarClientes.setWidth100();
    buscarClientes.setHeight100();
    buscarClientes.setOverflow(Overflow.VISIBLE);
    //excluir.setWidth(40);
    final ListGridField codigo = new ListGridField("codigo", Info.titulosMsg.get("tituloCodigo"));
    final ListGridField placaPosicao = new ListGridField("placa", Info.titulosMsg.get("lista"));
    codigo.setHidden(true);
    placaPosicao.setAlign(Alignment.CENTER);
    TabHistorico.veiculos.setDataSource(TabHistorico.dataSoucePlacas);

    final ListGridField quantidade = new ListGridField("contador", Info.titulosMsg.get("numeroEndereco"));
    final ListGridField googleMap = new ListGridField("google", "Mapa");
    final ListGridField codPosicao = new ListGridField("codPosicao", "codPosicao");
    final ListGridField lat = new ListGridField("lat", Info.titulosMsg.get("latitude"));
    final ListGridField lon = new ListGridField("lon", Info.titulosMsg.get("longitude"));
    final ListGridField dataEhoraReal = new ListGridField("dataEhoraReal", Info.titulosMsg.get("dataHora"));
    final ListGridField dataEhora = new ListGridField("dataEhora", Info.titulosMsg.get("dataHora"));
    final ListGridField sat = new ListGridField("sat", Info.titulosMsg.get("satelite"));
    final ListGridField gps = new ListGridField("gps", Info.titulosMsg.get("gps"));
    final ListGridField vel = new ListGridField("vel", Info.titulosMsg.get("velocidade"));
    final ListGridField ingReal = new ListGridField("ignReal", Info.titulosMsg.get("ignicao"));
    final ListGridField ing = new ListGridField("ign", Info.titulosMsg.get("ignicao"));
    final ListGridField entrada = new ListGridField("entrada", Info.titulosMsg.get("entrada"));
    final ListGridField saida = new ListGridField("saida", Info.titulosMsg.get("saida"));
    final ListGridField evento = new ListGridField("evento", Info.titulosMsg.get("evento"));
    final ListGridField enderecoPosicao = new ListGridField("endereco", Info.titulosMsg.get("endereco"));
    final ListGridField codDirecao = new ListGridField("codDirecao", Info.titulosMsg.get("direcao"));
    final ListGridField direcao = new ListGridField("direcao", Info.titulosMsg.get("direcao"));
    final ListGridField fabricante = new ListGridField("fabricante", Info.titulosMsg.get("fabricante"));
    final ListGridField modelo = new ListGridField("modelo", Info.titulosMsg.get("modelo"));
    final ListGridField cor = new ListGridField("cor", Info.titulosMsg.get("cor"));
    final ListGridField ano = new ListGridField("ano", Info.titulosMsg.get("ano"));

    quantidade.setWidth(40);
    quantidade.setAlign(Alignment.CENTER);
    googleMap.setAlign(Alignment.CENTER);
    googleMap.setWidth(60);
    //quantidade.setHidden(true);
    codPosicao.setHidden(true);
    fabricante.setHidden(true);
    modelo.setHidden(true);
    cor.setHidden(true);
    ano.setHidden(true);

    //codPosicao.setWidth(1);
    //codPosicao.setHidden(true);        
    lat.setAlign(Alignment.CENTER);
    lat.setWidth(80);
    lon.setAlign(Alignment.CENTER);
    lon.setWidth(80);
    dataEhora.setAlign(Alignment.CENTER);
    dataEhora.setWidth(115);
    sat.setAlign(Alignment.CENTER);
    sat.setWidth(80);
    gps.setAlign(Alignment.CENTER);
    gps.setWidth(65);
    vel.setAlign(Alignment.CENTER);
    vel.setWidth(80);
    ing.setAlign(Alignment.CENTER);
    ing.setWidth(70);
    ingReal.setAlign(Alignment.CENTER);
    ingReal.setHidden(true);
    entrada.setAlign(Alignment.CENTER);
    entrada.setWidth(80);
    saida.setAlign(Alignment.CENTER);
    saida.setWidth(80);
    evento.setAlign(Alignment.CENTER);
    evento.setWidth(80);
    enderecoPosicao.setAlign(Alignment.CENTER);
    //enderecoPosicao.setWidth(500);
    codDirecao.setAlign(Alignment.CENTER);
    codDirecao.setHidden(true);
    direcao.setAlign(Alignment.CENTER);
    direcao.setWidth(70);
    dataEhoraReal.setHidden(true);

    if (Info.usuarioLogado.get("codClienteCliente") != null) {
        lat.setHidden(true);
        lon.setHidden(true);
        //sat.setHidden(true);
        entrada.setHidden(true);
        saida.setHidden(true);
        evento.setHidden(true);
    }
    TabHistorico.posicoesVeiculos.setFields(quantidade, googleMap, codPosicao, dataEhoraReal, dataEhora, vel,
            ingReal, ing, lat, lon, sat, gps, entrada, saida, evento, enderecoPosicao, codDirecao, direcao,
            fabricante, modelo, cor, ano);

    //posicoesVeiculos.setSortField(0);
    //posicoesVeiculos.setSortDirection(SortDirection.DESCENDING);
    //painelPai.addMember(painelSectionPlacas);
    painelPai.addMember(buscarClientes);
    setPane(painelPai);

    TabHistorico.veiculos.addDrawHandler(new DrawHandler() {

        @Override
        public void onDraw(DrawEvent event) {

            //TabHistorico.veiculos.setDataSource(dataSoucePlacas);
            //TabHistorico.veiculos.fetchData();
            TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA = true;
            TabHistorico.veiculos.selectRecord(veiculos.getRecord(indexVeiculoPlaca));
            TabHistorico.veiculos.groupBy("grupo");
            TabHistorico.veiculos.selectRecord(veiculos.getRecord(indexVeiculoPlaca));
            //TabHistorico.veiculos.selectRecord(indexVeiculoPlaca);
        }
    });
    TabHistorico.veiculos.setAutoFetchData(true);
    TabHistorico.veiculos.setDataSource(TabHistorico.dataSoucePlacas);
    TabHistorico.veiculos.fetchData();
    TabHistorico.veiculos.setGroupStartOpen(GroupStartOpen.ALL);
    TabHistorico.veiculos.setGroupByField("grupo");
    TabHistorico.veiculos.groupBy("grupo");

    TabHistorico.veiculos.addGroupByCompleteHandler(new GroupByCompleteHandler() {

        @Override
        public void onGroupByComplete(GroupByCompleteEvent event) {
            if (TabHistorico.veiculos.getTotalRows() > indexVeiculoPlaca) {
                //veiculos.selectRecord(indexVeiculoPlaca + 1);
                TabHistorico.veiculos.selectRecord(indexVeiculoPlaca);
                //GWT.log("addGroupByCompleteHandler: "+indexVeiculoPlaca);
            } else {
                TabHistorico.veiculos.selectRecord(0);
                //GWT.log("addGroupByCompleteHandler: "+indexVeiculoPlaca);
            }
        }
    });
    TabHistorico.veiculos.addGroupStateChangedHandler(new GroupStateChangedHandler() {

        @Override
        public void onGroupStateChanged(GroupStateChangedEvent event) {
            if (TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA) {
                if (TabHistorico.veiculos.getTotalRows() > indexVeiculoPlaca) {
                    //veiculos.selectRecord(indexVeiculoPlaca + 1);
                    TabHistorico.veiculos.selectRecord(veiculos.getRecord(indexVeiculoPlaca));
                    //GWT.log("addGroupStateChangedHandler" + indexVeiculoPlaca);
                } else {
                    TabHistorico.veiculos.selectRecord(veiculos.getRecord(0));
                    //GWT.log("addGroupStateChangedHandler" + indexVeiculoPlaca);
                }
                //veiculos.focus();
            }
        }
    });

    TabHistorico.veiculos.addSelectionUpdatedHandler(new SelectionUpdatedHandler() {

        @Override
        public void onSelectionUpdated(SelectionUpdatedEvent event) {
            //Info.markersHistorico.markersClearAll(Info.polyHistorico, Info.markersHistorico.markersValue());
            String codVeiculoGrid = TabHistorico.veiculos.getSelectedRecord().getAttribute("codigo");
            GWT.log("Cdigo do veculo selecionado: " + codVeiculoGrid);
            TabHistorico.indexVeiculoPlaca = TabHistorico.veiculos
                    .getRecordIndex(TabHistorico.veiculos.getSelectedRecord());
            //Info.mapaHistorico.setZoom(16);
            html.redraw();
            //GWT.log("TimeZone client - addSelectionChangedHandler: " + timeZone);
            html.setContents("<a href=\"./ExcelServlet?placa="
                    + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa") + "&dataInicio="
                    + itemDataEhora.getValueAsDate().getTime() + "" + "&dataFim="
                    + itemDataEhoraPara.getValueAsDate().getTime() + "\">"
                    + "<img src=\"./imagens/excel.png\" title=\"Baixar histrico - Excel\" width=\"25\" height=\"25\" />"
                    + "</a>" + "<a href=\"./PdfServlet?cod="
                    + TabHistorico.veiculos.getSelectedRecord().getAttribute("codigo") + "&placa="
                    + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa") + "&dataInicio="
                    + itemDataEhora.getValueAsDate().getTime() + "" + "&dataFim="
                    + itemDataEhoraPara.getValueAsDate().getTime() + "\">"
                    + "<img src=\"./imagens/pdf.png\" title=\"Baixar histrico - PDF\" width=\"25\" height=\"25\" />"
                    + "</a>");
            infoVeiculo.redraw();
            infoVeiculo.setContents("<strong style=\"font-size:15px; \">" + Info.titulosMsg.get("placa") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttribute("placa") + " "
                    + Info.titulosMsg.get("fabricante") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("fabricante") + " "
                    + Info.titulosMsg.get("modelo") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("modelo") + " "
                    + Info.titulosMsg.get("cor") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("cor") + " "
                    + Info.titulosMsg.get("ano") + ": "
                    + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("ano")
                    + ".</strong>  Percorridos: 0 metros. Tempo : 0.");

            //GWT.log("Index Placa: "+indexVeiculoPlaca);
            TabHistorico.posicoesSemEndereco.clear();

            Timestamp dataInicio = new Timestamp(itemDataEhora.getValueAsDate().getTime());
            Timestamp dataFim = new Timestamp(itemDataEhoraPara.getValueAsDate().getTime());
            TabHistorico.posicoesVeiculos.setData(new Record[0]);
            i = 1;
            Info.abrirJanelaCarregando();

            Info.dbService.buscarPosicoesPorIntervaloData(codVeiculoGrid, dataInicio, dataFim,
                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                        @Override
                        public void onFailure(Throwable caught) {
                            Info.fecharJanelaCarrgando();
                            SC.warn("Falha na conexo - PosicoesPorIntervaloData2");

                        }

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

                            TabHistorico.posicoesVeiculos.setData(new Record[0]);
                            i = 1;

                            if (result != null) {
                                Info.fecharJanelaCarrgando();
                                html.redraw();

                                for (TreeMap<String, String> posicoes : result) {
                                    Record registro = new Record();
                                    registro.setAttribute("contador", i);
                                    registro.setAttribute("google",
                                            "<a  href=\"http://maps.google.com.br/maps?q=" + posicoes.get("lat")
                                                    + "," + posicoes.get("lon")
                                                    + "\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>");
                                    registro.setAttribute("codPosicao",
                                            Integer.parseInt(posicoes.get("codigo")));
                                    registro.setAttribute("lat", posicoes.get("lat"));
                                    registro.setAttribute("lon", posicoes.get("lon"));
                                    registro.setAttribute("dataEhoraReal",
                                            Long.parseLong(posicoes.get("dataHora")));
                                    //DateUtil.setDefaultDisplayTimezone("-03:00");
                                    //registro.setAttribute("dataEhora", DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM).format(new Timestamp(Long.parseLong(posicoes.get("dataHora"))), TimeZone.createTimeZone(120)));
                                    registro.setAttribute("dataEhora", posicoes.get("dataHoraString"));
                                    //registro.setAttribute("sat", posicoes.get("sat"));
                                    registro.setAttribute("sat", posicoes.get("sat")
                                            + " <img src=\"../imagens/satelite.png\" width=\"16\" height=\"16\" alt=\"Satlite\" title=\"Satlite\"/>");
                                    //registro.setAttribute("gps", posicoes.get("gps"));
                                    registro.setAttribute("gps",
                                            (posicoes.get("gps").equalsIgnoreCase("0"))
                                                    ? "<nbr class=\"positivo\">Atualizado</nbr>"
                                                    : "<nbr class=\"alerta\">Memria</nbr>");
                                    registro.setAttribute("vel", posicoes.get("vel"));
                                    registro.setAttribute("ignReal", Boolean.parseBoolean(posicoes.get("ign")));
                                    registro.setAttribute("ign", (Boolean.parseBoolean(posicoes.get("ign")))
                                            ? "<img src=\"../imagens/ignligada.png\" width=\"16\" height=\"16\" alt=\"Ligada\" title=\"Ligada\"/>"
                                            : "<img src=\"../imagens/igndesligada.png\" width=\"16\" height=\"16\" alt=\"desligada\"  title=\"Desligada\"/>");
                                    registro.setAttribute("entrada", posicoes.get("entrada"));
                                    registro.setAttribute("saida", posicoes.get("saida"));
                                    registro.setAttribute("evento", posicoes.get("evento"));
                                    registro.setAttribute("endereco",
                                            (posicoes.get("endereco") == null) ? "Sem endereo"
                                                    : posicoes.get("endereco"));
                                    registro.setAttribute("codDirecao", posicoes.get("codDirecao"));
                                    registro.setAttribute("direcao", posicoes.get("direcao"));
                                    TabHistorico.posicoesVeiculos.addData(registro);
                                    i++;
                                    if (posicoes.get("endereco") == null) {
                                        TabHistorico.posicoesSemEndereco.add(registro);
                                    }
                                }

                                TabHistorico.posicoesVeiculos.selectRecord(0, true);
                                if (flagSemEndereco) {
                                    flagSemEndereco = false;
                                    Info.atualizaPosicoesSemEnderecoHistorico.scheduleRepeating(5000);
                                }

                            } else {
                                Info.fecharJanelaCarrgando();
                                html.redraw();
                                SC.warn("Este intervalo de datas no possui posies!");
                                //GWT.log("ERRO ao listar posicoes dos veculos! Histrico");
                            }
                        }
                    });
        }
    });

    TabHistorico.veiculos.addDataArrivedHandler(new DataArrivedHandler() {

        @Override
        public void onDataArrived(DataArrivedEvent event) {

            //GWT.log("LINHA addDataArrivedHandler ++++++++++++++++");
            if (tamanhoListaVeiculos > 0) {

                if (tamanhoListaVeiculos > 7 && verificaListaDeVeiculos) {
                    verificaListaDeVeiculos = false;
                    //GWT.log("Tamanho lista veculos : " + tamanhoListaVeiculos + " verficaLista : " + verificaListaDeVeiculos);
                    //painelPai.clear();
                    removePlacas.setDisabled(false);
                    painelPai.redraw();
                    final SectionStackSection placasSection = new SectionStackSection();
                    placasSection.setTitle("Placas");
                    TabHistorico.veiculos.markForRedraw();
                    TabHistorico.veiculos.setBorder("0px");
                    TabHistorico.veiculos.setWidth("100%");
                    placasSection.setItems(veiculos);
                    placasSection.setExpanded(true);
                    //placasSection.setControls(addPlacas, removePlacas);

                    final SectionStack listaDePlacasSectionStack = new SectionStack();
                    listaDePlacasSectionStack.setSections(placasSection);
                    listaDePlacasSectionStack.setVisibilityMode(VisibilityMode.MULTIPLE);
                    listaDePlacasSectionStack.setAnimateSections(true);
                    listaDePlacasSectionStack.setWidth100();
                    listaDePlacasSectionStack.setHeight100();
                    listaDePlacasSectionStack.setOverflow(Overflow.VISIBLE);
                    painelSectionPlacas.setMembersMargin(5);
                    painelSectionPlacas.setWidth("10%");
                    painelSectionPlacas.setHeight100();
                    painelSectionPlacas.addMember(listaDePlacasSectionStack);

                    painelGridVeiculos.markForRedraw();
                    painelGridVeiculos.addMember(TabHistorico.posicoesVeiculos);

                    painelPai.addMember(painelSectionPlacas, 0);
                    painelPai.addMember(buscarClientes, 1);
                }
            }
        }
    });

    TabHistorico.posicoesVeiculos.addSelectionUpdatedHandler(new SelectionUpdatedHandler() {

        @Override
        public void onSelectionUpdated(SelectionUpdatedEvent event) {

            ListGridRecord[] lista = new ListGridRecord[0];
            lista = TabHistorico.posicoesVeiculos.getSelectedRecords();
            //GWT.log("posicoesVeiculos.addSelectionUpdatedHandler");
            sortPosicoes(lista);
        }
    });

    Info.atualizaPosicoesSemEnderecoHistorico = new Timer() {

        @Override
        public void run() {

            if (Info.validaConexao()) {

                Record registro = new Record();
                registro.setAttribute("dataHoraReal", new Timestamp(System.currentTimeMillis()).getTime());
                registro.setAttribute("log",
                        "Linha da Thread atualiza Posicoes sem endereo: "
                                + DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM)
                                        .format(new Timestamp(System.currentTimeMillis())));
                TabLog.log.addData(registro);
                //GWT.log("HISTRICO - posicoesSemEndereco: "+TabHistorico.posicoesSemEndereco.size());
                final String placaSelecao = TabHistorico.veiculos.getSelectedRecord()
                        .getAttributeAsString("placa");
                //GWT.log("PLACA SELECIONADA H1 : "+placaSelecao);

                if (TabHistorico.posicoesSemEndereco.size() > 0) {

                    Timer avisoTimer = new Timer() {

                        @Override
                        public void run() {
                            labelPosicoesSemEndereco.redraw();
                            labelPosicoesSemEndereco.setContents(
                                    "<nbr>Aguarde... Restando : " + TabHistorico.posicoesSemEndereco.size()
                                            + " endereo(s) a ser processado(s)!</nbr>");
                        }
                    };
                    avisoTimer.schedule(3500);

                    for (final Record posicaoSemEndereco : TabHistorico.posicoesSemEndereco) {

                        final String lat = posicaoSemEndereco.getAttributeAsString("lat");
                        final String lon = posicaoSemEndereco.getAttributeAsString("lon");

                        String latLng = lat + ";" + lon;
                        //GWT.log("LatLng T1: "+latLng);
                        if (Info.enderecosResolvidos.containsKey(latLng)) {

                            int index = TabHistorico.posicoesVeiculos.getRecordIndex(posicaoSemEndereco);

                            if (index != -1) {

                                TabHistorico.posicoesVeiculos.getRecord(index).setAttribute("endereco",
                                        Info.enderecosResolvidos.get(latLng));
                                TabHistorico.posicoesVeiculos.markForRedraw();
                                TabHistorico.posicoesVeiculos.refreshRecordComponent(index, 13);

                                //GWT.log("HISTRICO - Resolvido VARI?VEL LOCAL!");
                                TreeMap<String, String> enderecoPosicao = new TreeMap<>();
                                enderecoPosicao.put("placa", placaSelecao);
                                //GWT.log("Placa selecionada HISTORICO 1 "+placaSelecao);
                                enderecoPosicao.put("lat", lat);
                                enderecoPosicao.put("lon", lon);

                                TabHistorico.posicoesSemEndereco.remove(posicaoSemEndereco);
                                //TabHistorico.semafaro = true;

                                Info.dbService.atualizarPosicaoEndereco(enderecoPosicao,
                                        new AsyncCallback<Boolean>() {

                                            @Override
                                            public void onFailure(Throwable caught) {
                                                Window.alert(
                                                        "atualizarPosicaoEnderecoHistorico - A remote interface failure !: "
                                                                + caught.getMessage());
                                            }

                                            @Override
                                            public void onSuccess(Boolean result) {
                                                //GWT.log("Endereco atualizado no BD : " + result);
                                            }
                                        });
                            }

                        } else {
                            for (int i = 0; i < 20; i++) {
                                if (i == 19) {
                                    //if(flagBuscaEndereco){
                                    flagBuscaEndereco = false;
                                    GWT.log("LINHA 01 HISTORICO");
                                    buscaEndereco(lat, lon, placaSelecao, posicaoSemEndereco);
                                    GWT.log("LINHA 02 HISTORICO");
                                    //}
                                }
                            }
                        }

                    }

                } else {
                    //TabHistorico.LIMIT_CONSULTA_ENDERECO_GOOGLE = 0;
                    Timer avisoTimer = new Timer() {

                        @Override
                        public void run() {
                            labelPosicoesSemEndereco.redraw();
                            labelPosicoesSemEndereco.setContents("");
                        }
                    };
                    avisoTimer.schedule(3500);
                }
            }
        }
    };
}

From source file:com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabInicio.java

public TabInicio() {
    //, TimeZone.createTimeZone(120)
    //tabelaDesenhada = true;
    //placasNaoRepetidas = new TreeMap<>();
    //this.timeZone = Info.timeZoneClient();
    //DateUtil.setDefaultDisplayTimezone(timeZone);  
    Info.enderecosResolvidos = new TreeMap<>();
    indexVeiculos = 0;//  w  w w. j a  va 2s.  c  o m
    indexVeiculoPlaca = 0;
    codUltimaPosicao = 0;
    codUltimaPosicaoAux = 1;
    offSet = 0;
    offSetAux = -1;
    TabInicio.posicoesSemEndereco = new ArrayList<>();
    TabInicio.listaVeiculos = new TreeMap<>();
    this.tamanhoListaVeiculos = 0;
    TabInicio.veiculos = new ListGrid();
    TabInicio.veiculos.setSortDirection(SortDirection.ASCENDING);
    TabInicio.veiculos.setSortField("placa");
    TabInicio.veiculos.setCanSort(false);
    TabInicio.veiculos.setCanGroupBy(true);
    TabInicio.veiculos.setGroupByMaxRecords(100000);
    TabInicio.veiculos.setCanAutoFitFields(false);
    TabInicio.veiculos.setSelectionType(SelectionStyle.SINGLE);
    TabInicio.veiculos.setWidth("10%");
    TabInicio.veiculos.setCanPickFields(false);
    TabInicio.veiculos.setAlternateRecordStyles(true);
    TabInicio.veiculos.setShowFilterEditor(true);
    TabInicio.veiculos.setTooltip(Info.titulosMsg.get("listaVeiculos"));
    TabInicio.veiculos.setFilterOnKeypress(true);
    TabInicio.veiculos.setCanSort(false);

    TabInicio.dataSourcePlacas = new DataSource();
    TabInicio.dataSourcePlacas.setClientOnly(true);
    DataSourceTextField codVeiculoField = new DataSourceTextField("codigo",
            Info.titulosMsg.get("tituloCodigo"));
    codVeiculoField.setHidden(true);
    DataSourceTextField placaVeiculo = new DataSourceTextField("placa", Info.titulosMsg.get("placa"));
    placaVeiculo.setRequired(true);
    //placaVeiculo.setPrimaryKey(true);
    DataSourceTextField iconeVeiculo = new DataSourceTextField("icone", "?cone de veculo");
    iconeVeiculo.setHidden(true);
    DataSourceTextField grupoVeiculo = new DataSourceTextField("grupo", "grupo");
    //grupoVeiculo.setGroup(icone);
    grupoVeiculo.setHidden(true);
    TabInicio.dataSourcePlacas.setFields(codVeiculoField, iconeVeiculo, placaVeiculo, grupoVeiculo);

    TabInicio.posicoesVeiculos = new ListGrid();
    //this.indexVeiculoPlaca = 0;
    //this.index20 = 0;
    //this.indexDecrescente = 100;
    //TabInicio.semafaro = true;
    //criando o Vlayout que ir armazenar todo o layout da janela
    final HLayout painelPai = new HLayout();
    painelPai.setWidth100();
    painelPai.setHeight100();
    painelPai.setAlign(Alignment.CENTER);
    Info.dbService.buscarVeiculoPorUsuarioLogado(Integer.parseInt(Info.usuarioLogado.get("codUsuario")),
            new AsyncCallback<TreeMap<String, Object>>() {

                @Override
                public void onFailure(Throwable caught) {
                    //
                    if (caught instanceof Exception) {
                        SC.warn("Falha na conexo - buscarVeiculo");
                    }
                }

                @Override
                public void onSuccess(TreeMap<String, Object> result) {
                    if (result != null) {
                        setListaVeiculos(result);
                        tamanhoListaVeiculos = result.size() - 3;
                        //GWT.log("TamanhoLista : "+tamanhoListaVeiculos);
                        TreeMap<String, Object> veiculosAuxiliar = new TreeMap<>(result);
                        //ListGridRecord[] registeredPlacaRecords = new ListGridRecord[result.size()];
                        if (veiculosAuxiliar.size() > 0) {

                            TabInicio.codUltimaPosicao = Integer.parseInt((String) result.get("MAXIMO"));
                            //codUltimaPosicaoAux = Integer.parseInt((String) result.get("MAXIMO"));
                            Info.enderecosResolvidos.putAll((TreeMap<String, String>) result.get("ENDERECO"));
                            TabInicio.indexVeiculos = 0;
                            TreeMap<String, TreeMap<String, String>> grupoAux = (TreeMap<String, TreeMap<String, String>>) result
                                    .get("GRUPO");
                            setGruposDeVeiculos(grupoAux);
                            //GWT.log("Grupos : " + grupoAux.size());
                            for (Map.Entry<String, TreeMap<String, String>> entrySet : grupoAux.entrySet()) {
                                String key = entrySet.getKey();
                                TreeMap<String, String> value = entrySet.getValue();
                                for (Map.Entry<String, String> entrySet1 : value.entrySet()) {
                                    String key1 = entrySet1.getKey();
                                    //String value1 = entrySet1.getValue();
                                    ListGridRecord recordVeiculos = new ListGridRecord();
                                    recordVeiculos.setAttribute("icone", key1.substring(0, key1.indexOf(";")));
                                    recordVeiculos.setAttribute("placa",
                                            key1.substring(key1.indexOf(";") + 1, key1.length()));
                                    recordVeiculos.setAttribute("grupo", key);
                                    TabInicio.dataSourcePlacas.addData(recordVeiculos);
                                }

                            }
                            //GWT.log("FLAG DE 5 POSICOES : " + flagCincoPosicoes);
                            flagCincoPosicoes = true;
                            //GWT.log("FLAG DE 5 POSICOES : " + flagCincoPosicoes);
                        } else {
                            GWT.log("ERRO ao listar os veculos do usurio DataSource: "
                                    + Info.usuarioLogado.get("codUsuario"));
                        }
                    } else {
                        GWT.log("Usurio sem veculo: " + Info.usuarioLogado.get("codUsuario"));
                    }
                }
            });
    //Setando itens de configurao da tab
    setTitle(Info.titulosMsg.get("inicio"));
    //final Label infoVeiculo = new Label("<strong style=\"font-size:15px; \">Placa: XXX-1111" + " Fabricante: XXXX" + " Modelo: XXXX" + " Cor: XXXX" + " Ano: 0000/0000" + "</strong>");
    infoVeiculo.setHeight(30);
    final SectionStackSection mapaSection = new SectionStackSection();
    mapaSection.setID("mapaSection");
    mapaSection.setTitle(Info.titulosMsg.get("mapa"));//
    mapaSection.setExpanded(true);
    /********************************************/
    mapaInicioOpenLayer = new MapaInicioOpenLayer();

    /*******************************************/
    mapaSection.setItems(mapaInicioOpenLayer);

    final VLayout painelGridVeiculos = new VLayout();
    //painelGridVeiculos.setMembersMargin(10);
    painelGridVeiculos.addMember(infoVeiculo);
    painelGridVeiculos.addMember(TabInicio.posicoesVeiculos);
    painelGridVeiculos.setHeight100();

    final HLayout painelGridInfoVeiculo = new HLayout();
    painelGridInfoVeiculo.setMembersMargin(5);
    painelGridInfoVeiculo.addMember(TabInicio.veiculos);
    painelGridInfoVeiculo.addMember(painelGridVeiculos);
    painelGridInfoVeiculo.setHeight("25%");

    final SectionStackSection dadosSection = new SectionStackSection();
    dadosSection.setTitle(Info.titulosMsg.get("dadosVeiculo"));
    dadosSection.setItems(painelGridInfoVeiculo);
    dadosSection.setExpanded(true);

    final SectionStack buscarClientes = new SectionStack();
    buscarClientes.setSections(mapaSection, dadosSection);
    buscarClientes.setVisibilityMode(VisibilityMode.MULTIPLE);
    buscarClientes.setAnimateSections(true);
    buscarClientes.setWidth100();
    buscarClientes.setHeight100();
    buscarClientes.setOverflow(Overflow.VISIBLE);
    //excluir.setWidth(40);
    final ListGridField codigo = new ListGridField("codigo", Info.titulosMsg.get("tituloCodigo"));
    final ListGridField placaGrid = new ListGridField("placa", Info.titulosMsg.get("lista"));
    codigo.setHidden(true);
    placaGrid.setAlign(Alignment.CENTER);

    TabInicio.veiculos.setDataSource(TabInicio.dataSourcePlacas);

    //final ListGridField quantidade = new ListGridField("contador", Info.titulosMsg.get("numeroEndereco"));
    final ListGridField googleMap = new ListGridField("google", "Mapa");
    final ListGridField codPosicao = new ListGridField("codPosicao", "codPosicao");
    final ListGridField lat = new ListGridField("lat", Info.titulosMsg.get("latitude"));
    final ListGridField lon = new ListGridField("lon", Info.titulosMsg.get("longitude"));
    final ListGridField dataEhoraReal = new ListGridField("dataEhoraReal", Info.titulosMsg.get("dataHora"));
    final ListGridField dataEhora = new ListGridField("dataEhora", Info.titulosMsg.get("dataHora"));
    final ListGridField sat = new ListGridField("sat", Info.titulosMsg.get("satelite"));
    final ListGridField gps = new ListGridField("gps", Info.titulosMsg.get("gps"));
    final ListGridField vel = new ListGridField("vel", Info.titulosMsg.get("velocidade"));
    final ListGridField ing = new ListGridField("ign", Info.titulosMsg.get("ignicao"));
    final ListGridField ingReal = new ListGridField("ignReal", Info.titulosMsg.get("ignicao"));
    final ListGridField entrada = new ListGridField("entrada", Info.titulosMsg.get("entrada"));
    final ListGridField saida = new ListGridField("saida", Info.titulosMsg.get("saida"));
    final ListGridField evento = new ListGridField("evento", Info.titulosMsg.get("evento"));
    final ListGridField enderecoGrid = new ListGridField("endereco", Info.titulosMsg.get("endereco"));
    final ListGridField codDirecao = new ListGridField("codDirecao", Info.titulosMsg.get("direcao"));
    final ListGridField direcao = new ListGridField("direcao", Info.titulosMsg.get("direcao"));
    final ListGridField fabricante = new ListGridField("fabricante", Info.titulosMsg.get("fabricante"));
    final ListGridField modelo = new ListGridField("modelo", Info.titulosMsg.get("modelo"));
    final ListGridField cor = new ListGridField("cor", Info.titulosMsg.get("cor"));
    final ListGridField ano = new ListGridField("ano", Info.titulosMsg.get("ano"));
    final ListGridField nomeClienteGrid = new ListGridField("cliente", "Cliente");
    //quantidade.setWidth(40);
    //quantidade.setAlign(Alignment.CENTER);
    //quantidade.setHidden(true);
    googleMap.setAlign(Alignment.CENTER);
    googleMap.setWidth(60);
    codPosicao.setHidden(true);
    fabricante.setHidden(true);
    modelo.setHidden(true);
    cor.setHidden(true);
    ano.setHidden(true);
    codPosicao.setSortDirection(SortDirection.DESCENDING);
    codPosicao.setWidth(1);
    lat.setAlign(Alignment.CENTER);
    lat.setWidth(80);
    lon.setAlign(Alignment.CENTER);
    lon.setWidth(80);
    dataEhora.setAlign(Alignment.CENTER);
    dataEhora.setWidth(115);
    sat.setAlign(Alignment.CENTER);
    sat.setWidth(80);
    gps.setAlign(Alignment.CENTER);
    gps.setWidth(65);
    vel.setAlign(Alignment.CENTER);
    vel.setWidth(80);
    ing.setAlign(Alignment.CENTER);
    ing.setWidth(70);
    ingReal.setAlign(Alignment.LEFT);
    ingReal.setHidden(true);
    entrada.setAlign(Alignment.CENTER);
    entrada.setWidth(80);
    saida.setAlign(Alignment.CENTER);
    saida.setWidth(80);
    evento.setAlign(Alignment.CENTER);
    evento.setWidth(80);
    enderecoGrid.setAlign(Alignment.CENTER);
    //enderecoGrid.setWidth(500);
    codDirecao.setAlign(Alignment.CENTER);
    codDirecao.setHidden(true);
    direcao.setAlign(Alignment.CENTER);
    direcao.setWidth(70);
    //direcao.setHidden(true);
    dataEhoraReal.setHidden(true);
    nomeClienteGrid.setHidden(true);
    if (Info.usuarioLogado.get("codClienteCliente") != null) {
        lat.setHidden(true);
        lon.setHidden(true);
        //sat.setHidden(true);
        entrada.setHidden(true);
        saida.setHidden(true);
        evento.setHidden(true);
    }
    TabInicio.posicoesVeiculos.setFields(googleMap, codPosicao, dataEhoraReal, dataEhora, vel, ingReal, ing,
            lat, lon, sat, gps, entrada, saida, evento, enderecoGrid, codDirecao, direcao, fabricante, modelo,
            cor, ano, nomeClienteGrid);
    TabInicio.posicoesVeiculos.setCanPickFields(false);
    TabInicio.posicoesVeiculos.setSelectionType(SelectionStyle.MULTIPLE);
    TabInicio.posicoesVeiculos.setCanDragSelect(true);
    TabInicio.posicoesVeiculos.setCanAutoFitFields(false);
    TabInicio.posicoesVeiculos.setCanAutoFitFields(false);
    TabInicio.posicoesVeiculos.setCanSort(false);
    TabInicio.posicoesVeiculos.setCanGroupBy(false);
    TabInicio.posicoesVeiculos.setCanFreezeFields(false);
    //posicoesVeiculos.setSortField("dataEhora");
    //posicoesVeiculos.setSortDirection(SortDirection.DESCENDING);
    SortSpecifier sortSpecifier = new SortSpecifier("dataEhoraReal", SortDirection.DESCENDING);
    TabInicio.posicoesVeiculos.setSort(sortSpecifier);
    TabInicio.posicoesVeiculos.setProgressiveLoading(true);
    //TabInicio.posicoesVeiculos.setAnimateScrollAcceleration(AnimationAcceleration.SMOOTH_START);
    //TabInicio.posicoesVeiculos.addSort(sortSpecifier);
    //TabInicio.posicoesVeiculos.setCanSort(false);        
    //TabInicio.posicoesVeiculos.setSortField(0);  
    final ImgButton addPlacas = new ImgButton();
    addPlacas.setSrc("[SKIN]actions/add.png");
    addPlacas.setTooltip("Maximizar lista de veculos");
    addPlacas.setSize(16);
    addPlacas.setShowFocused(false);
    addPlacas.setShowRollOver(false);
    addPlacas.setShowDown(false);
    addPlacas.setDisabled(true);

    final ImgButton telaCheia = new ImgButton();
    telaCheia.setSrc("../imagens/fullscreen.png");
    telaCheia.setTooltip("Tela Cheia");
    telaCheia.setSize(16);
    telaCheia.setShowFocused(false);
    telaCheia.setShowRollOver(false);
    telaCheia.setShowDown(false);
    //telaCheia.setDisabled(true);
    telaCheia.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Info.telaCheia("map-inicio");
        }
    });

    final ImgButton removePlacas = new ImgButton();
    removePlacas.setSrc("[SKIN]actions/remove.png");
    removePlacas.setTooltip("Minimizar lista de veculos");
    removePlacas.setSize(16);
    removePlacas.setShowFocused(false);
    removePlacas.setShowRollOver(false);
    removePlacas.setShowDown(false);
    removePlacas.setDisabled(true);

    final ImgButton refreshMapa = new ImgButton();
    refreshMapa.setSrc("[SKIN]actions/refresh.png");
    refreshMapa.setTooltip("Atualizar mapa");
    refreshMapa.setSize(16);
    refreshMapa.setShowFocused(false);
    refreshMapa.setShowRollOver(false);
    refreshMapa.setShowDown(false);
    refreshMapa.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            //Info.mapa.refresh(Info.mapa.value());
            mapaInicioOpenLayer.getOsm_1().redraw();
        }
    });
    //        boolean internetExplore = false;
    //        internetExplore = Info.identificaNavegador();
    //        if(internetExplore){
    mapaSection.setControls(refreshMapa, addPlacas, removePlacas);
    //        } else {
    //          mapaSection.setControls(telaCheia, refreshMapa, addPlacas, removePlacas);  
    //        }
    addPlacas.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            painelSectionPlacas.setAnimateTime(1200);
            painelSectionPlacas.animateShow(AnimationEffect.FADE);
            addPlacas.setDisabled(true);
            removePlacas.setDisabled(false);
        }
    });

    removePlacas.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            //veiculos.selectRecord(indexVeiculoPlaca);
            painelSectionPlacas.setAnimateTime(1200);
            painelSectionPlacas.animateHide(AnimationEffect.FADE);
            addPlacas.setDisabled(false);
            removePlacas.setDisabled(true);
            //painelFormulario.hide();
        }
    });

    TabInicio.posicoesVeiculos.addSelectionUpdatedHandler(new SelectionUpdatedHandler() {

        @Override
        public void onSelectionUpdated(SelectionUpdatedEvent event) {

            ListGridRecord[] lista = new ListGridRecord[0];
            lista = TabInicio.posicoesVeiculos.getSelectedRecords();
            sortPosicoes(lista);
        }
    });
    painelPai.addMember(buscarClientes);
    setPane(painelPai);
    TabInicio.veiculos.addDrawHandler(new DrawHandler() {

        @Override
        public void onDraw(DrawEvent event) {
            //GWT.log("addDrawHandler(new DrawHandler()");                 
            //Info.esconderLogoGoogle();
            TabInicio.TABELAVEICULODESENHADA = true;
            //GWT.log("addDrawHandler(new DrawHandler(): "+TabInicio.TABELAVEICULODESENHADA);

            if (tamanhoListaVeiculos > 0) {
                if (TabInicio.indexVeiculoPlaca == tamanhoListaVeiculos) {
                    TabInicio.indexVeiculoPlaca--;
                }
                TabInicio.veiculos.selectRecord(TabInicio.veiculos.getRecord(TabInicio.indexVeiculoPlaca));
                TabInicio.veiculos.groupBy("grupo");
                TabInicio.veiculos.selectRecord(TabInicio.veiculos.getRecord(TabInicio.indexVeiculoPlaca));
                TabInicio.posicoesVeiculos.selectRecord(0, true);

                if (tamanhoListaVeiculos > 7 && verificaListaDeVeiculos) {
                    verificaListaDeVeiculos = false;
                    //GWT.log("Tamanho lista veculos INICIO : " + tamanhoListaVeiculos + " verficaLista : " + verificaListaDeVeiculos);
                    //painelPai.clear();
                    removePlacas.setDisabled(false);
                    painelPai.redraw();
                    final SectionStackSection placasSection = new SectionStackSection();
                    placasSection.setTitle("Placas");
                    TabInicio.veiculos.markForRedraw();
                    TabInicio.veiculos.setBorder("0px");
                    TabInicio.veiculos.setWidth("100%");
                    placasSection.setItems(TabInicio.veiculos);
                    placasSection.setExpanded(true);

                    final SectionStack listaDePlacasSectionStack = new SectionStack();
                    listaDePlacasSectionStack.setSections(placasSection);
                    listaDePlacasSectionStack.setVisibilityMode(VisibilityMode.MULTIPLE);
                    listaDePlacasSectionStack.setAnimateSections(true);
                    listaDePlacasSectionStack.setWidth100();
                    listaDePlacasSectionStack.setHeight100();
                    listaDePlacasSectionStack.setOverflow(Overflow.VISIBLE);
                    painelSectionPlacas.setMembersMargin(5);
                    painelSectionPlacas.setWidth("10%");
                    painelSectionPlacas.setHeight100();
                    painelSectionPlacas.addMember(listaDePlacasSectionStack);

                    painelGridVeiculos.markForRedraw();
                    painelGridVeiculos.addMember(TabInicio.posicoesVeiculos);

                    painelPai.addMember(painelSectionPlacas, 0);
                    painelPai.addMember(buscarClientes, 1);
                }
            }
        }
    });
    //TabInicio.veiculos.setAutoFetchData(true);
    TabInicio.veiculos.setDataSource(TabInicio.dataSourcePlacas);
    TabInicio.veiculos.fetchData();
    //TabInicio.veiculos.groupBy("grupo");
    //TabInicio.veiculos.selectRecord(indexVeiculoPlaca, true);
    TabInicio.veiculos.setGroupStartOpen(GroupStartOpen.ALL);
    TabInicio.veiculos.setGroupByField("grupo");
    TabInicio.veiculos.groupBy("grupo");

    TabInicio.veiculos.addGroupStateChangedHandler(new GroupStateChangedHandler() {

        @Override
        public void onGroupStateChanged(GroupStateChangedEvent event) {
            if (TabInicio.veiculos.getTotalRows() > indexVeiculoPlaca) {
                //TabInicio.veiculos.selectRecord(indexVeiculoPlaca + 1);
                TabInicio.veiculos.selectRecord(TabInicio.veiculos.getRecord(indexVeiculoPlaca));
            } else {
                TabInicio.veiculos.selectRecord(TabInicio.veiculos.getRecord(0));
                //GWT.log("addGroupStateChangedHandler" + indexVeiculoPlaca);
            }
            //TabInicio.veiculos.focus();
        }
    });

    TabInicio.veiculos.addDataArrivedHandler(new DataArrivedHandler() {

        @Override
        public void onDataArrived(DataArrivedEvent event) {
            if (tamanhoListaVeiculos > 7 && verificaListaDeVeiculos) {
                verificaListaDeVeiculos = false;
                //GWT.log("Tamanho lista veculos INICIO : " + tamanhoListaVeiculos + " verficaLista : " + verificaListaDeVeiculos);
                //painelPai.clear();
                removePlacas.setDisabled(false);
                painelPai.redraw();
                final SectionStackSection placasSection = new SectionStackSection();
                placasSection.setTitle("Placas");
                TabInicio.veiculos.markForRedraw();
                TabInicio.veiculos.setBorder("0px");
                TabInicio.veiculos.setWidth("100%");
                placasSection.setItems(veiculos);
                placasSection.setExpanded(true);
                //placasSection.setControls(addPlacas, removePlacas);

                final SectionStack listaDePlacasSectionStack = new SectionStack();
                listaDePlacasSectionStack.setSections(placasSection);
                listaDePlacasSectionStack.setVisibilityMode(VisibilityMode.MULTIPLE);
                listaDePlacasSectionStack.setAnimateSections(true);
                listaDePlacasSectionStack.setWidth100();
                listaDePlacasSectionStack.setHeight100();
                listaDePlacasSectionStack.setOverflow(Overflow.VISIBLE);
                painelSectionPlacas.setMembersMargin(5);
                painelSectionPlacas.setWidth("10%");
                painelSectionPlacas.setHeight100();
                painelSectionPlacas.addMember(listaDePlacasSectionStack);

                painelGridVeiculos.markForRedraw();
                painelGridVeiculos.addMember(posicoesVeiculos);

                painelPai.addMember(painelSectionPlacas, 0);
                painelPai.addMember(buscarClientes, 1);
            }
        }
    });
    // Evento de seleo na tabela  veculos//
    TabInicio.veiculos.addSelectionUpdatedHandler(new SelectionUpdatedHandler() {

        @Override
        public void onSelectionUpdated(SelectionUpdatedEvent event) {
            //GWT.log("veiculos.getSelectedRecord()<<>> "+veiculos.getSelectedRecord());
            TabInicio.posicoesSemEndereco.clear();
            String placaVeiculo = veiculos.getSelectedRecord().getAttributeAsString("placa");
            placaSelecionadaAtual = placaVeiculo;
            TabInicio.indexVeiculoPlaca = veiculos.getRecordIndex(veiculos.getSelectedRecord());
            TabInicio.posicoesVeiculos.setData(new Record[0]);
            ArrayList<TreeMap<String, String>> posicoesVeiculo = (ArrayList<TreeMap<String, String>>) getListaVeiculos()
                    .get(placaVeiculo);

            for (TreeMap<String, String> posicoes : posicoesVeiculo) {
                //if (posicoes.get("placa").equalsIgnoreCase(placaVeiculo)) {
                Record registro = new Record();
                //registro.setAttribute("contador", i);
                registro.setAttribute("google", "<a  href=\"http://maps.google.com.br/maps?q="
                        + posicoes.get("lat") + "," + posicoes.get("lon")
                        + "\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>");
                registro.setAttribute("codPosicao", Integer.parseInt(posicoes.get("codUltimo")));
                registro.setAttribute("lat", posicoes.get("lat"));
                registro.setAttribute("lon", posicoes.get("lon"));
                registro.setAttribute("dataEhoraReal", Long.parseLong(posicoes.get("dataHora")));
                //DateUtil.setDefaultDisplayTimezone("-03:00");
                //registro.setAttribute("dataEhora", DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM).format(new Timestamp(Long.parseLong(posicoes.get("dataHora"))), TimeZone.createTimeZone(120)));
                registro.setAttribute("dataEhora", posicoes.get("dataHoraString"));
                //registro.setAttribute("sat", posicoes.get("sat"));
                registro.setAttribute("sat", posicoes.get("sat")
                        + " <img src=\"../imagens/satelite.png\" width=\"16\" height=\"16\" alt=\"Satlite\" title=\"Satlite\"/>");
                registro.setAttribute("gps",
                        (posicoes.get("gps").equalsIgnoreCase("0")) ? "<nbr class=\"positivo\">Atualizado</nbr>"
                                : "<nbr class=\"alerta\">Memria</nbr>");
                registro.setAttribute("vel", posicoes.get("vel"));
                registro.setAttribute("ignReal", Boolean.parseBoolean(posicoes.get("ign")));
                registro.setAttribute("ign", (Boolean.parseBoolean(posicoes.get("ign")))
                        ? "<img src=\"../imagens/ignligada.png\" width=\"16\" height=\"16\" alt=\"Ligada\" title=\"Ligada\"/>"
                        : "<img src=\"../imagens/igndesligada.png\" width=\"16\" height=\"16\" alt=\"desligada\"  title=\"Desligada\"/>");
                registro.setAttribute("entrada", posicoes.get("entrada"));
                registro.setAttribute("saida", posicoes.get("saida"));
                registro.setAttribute("evento", posicoes.get("evento"));
                registro.setAttribute("endereco",
                        (posicoes.get("endereco") == null) ? "Sem endereo" : posicoes.get("endereco"));
                registro.setAttribute("codDirecao", posicoes.get("codDirecao"));
                registro.setAttribute("direcao", posicoes.get("direcao"));
                registro.setAttribute("fabricante", posicoes.get("fabricante"));
                registro.setAttribute("modelo", posicoes.get("modelo"));
                registro.setAttribute("cor", posicoes.get("cor"));
                registro.setAttribute("ano", posicoes.get("ano"));
                registro.setAttribute("cliente", posicoes.get("nomeCliente"));
                //<a  href=\"http://maps.google.com.br/maps?q="+lat+","+lon+"\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>
                TabInicio.posicoesVeiculos.addData(registro);
                //registro.setAttribute("contador", TabInicio.posicoesVeiculos.getRecordIndex(registro));
                //posicoesVeiculos.refreshRecordComponent(TabInicio.posicoesVeiculos.getRecordIndex(registro), 0);
                //GWT.log("lat: "+posicoes.get("endereco")+" lon: "+posicoes.get("lon")+" end: "+posicoes.get("endereco"));
                if (posicoes.get("endereco") == null) {
                    TabInicio.posicoesSemEndereco.add(registro);
                }
                //}

            }
            TabInicio.posicoesVeiculos.selectRecord(0, true);
            if (flagSemEndereco) {
                flagSemEndereco = false;
                Info.atualizaPosicoesSemEndereco.scheduleRepeating(5000);
            }
            //indexDecrescente = posicoesVeiculos.getRecords().length - 1;
            infoVeiculo.redraw();
            //infoVeiculo.setTooltip("TESTE 2");
            infoVeiculo.setContents("<strong style=\"font-size:15px; \">  " + Info.titulosMsg.get("placa")
                    + ": " + placaVeiculo + " " + Info.titulosMsg.get("fabricante") + ": "
                    + TabInicio.posicoesVeiculos.getRecord(0).getAttributeAsString("fabricante") + " "
                    + Info.titulosMsg.get("modelo") + ": "
                    + TabInicio.posicoesVeiculos.getRecord(0).getAttributeAsString("modelo") + " "
                    + Info.titulosMsg.get("cor") + ": "
                    + TabInicio.posicoesVeiculos.getRecord(0).getAttributeAsString("cor") + " "
                    + Info.titulosMsg.get("ano") + ": "
                    + TabInicio.posicoesVeiculos.getRecord(0).getAttributeAsString("ano")
                    + ".</strong> Percorridos 0 metros. Tempo : 0.");

        }
    });

    Info.atualizaVeiculosTodos = new Timer() {

        @Override
        public void run() {
            if (Info.validaConexao()) {
                //GWT.log("flagCincoPosicoes : " + flagCincoPosicoes + " flagPosicoesDemanda: " + flagPosicoesDemanda + " offSet: " + offSet + " offSetAux: " + offSetAux);
                if (flagCincoPosicoes && flagPosicoesDemanda && offSet > offSetAux) {

                    //GWT.log("FLAG DE POSICOES OFFSET : " + flagPosicoesDemanda);
                    flagPosicoesDemanda = false;
                    //GWT.log("FLAG DE POSICOES OFFSET : " + flagPosicoesDemanda);
                    //GWT.log("flagPosicoesDemanda: " + flagPosicoesDemanda + " codMinimaPosicao: " + offSet + " codMinimaPosicaoAux: " + offSetAux);
                    Info.dbService.buscarVeiculoPorUsuarioLogadoTodas(
                            Integer.parseInt(Info.usuarioLogado.get("codUsuario")), offSet,
                            new AsyncCallback<TreeMap<String, Object>>() {

                                @Override
                                public void onFailure(Throwable caught) {
                                    SC.warn("ERRO - Falha na conexo com a internet - buscarVeiculoTodos");
                                }

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

                                    if (result != null) {
                                        offSetAux = TabInicio.offSet;
                                        TabInicio.offSet = Integer
                                                .parseInt(String.valueOf(result.get("OFFSET")));
                                        countThreadNovasDemanda = 0;
                                        //GWT.log("resultOFFSET .size(): " + result.size() + " codMinimaPosicao: " + offSet);
                                        //Info.enderecosResolvidos.clear();
                                        Info.enderecosResolvidos
                                                .putAll((TreeMap<String, String>) result.get("ENDERECO"));
                                        // diz para a thread que a busca pelas 100 posicoes foi feita;                                    
                                        Record registro = new Record();
                                        registro.setAttribute("dataHoraReal",
                                                new Timestamp(System.currentTimeMillis()).getTime());
                                        registro.setAttribute("log",
                                                "Linha da Thread atualiza Veiculos por OFFSET : "
                                                        + DateTimeFormat
                                                                .getFormat(PredefinedFormat.DATE_TIME_MEDIUM)
                                                                .format(new Timestamp(
                                                                        System.currentTimeMillis())));
                                        TabLog.log.addData(registro);
                                        TabInicio.listaVeiculos.putAll(result);
                                        String placaSelecao = null;
                                        long dataReal = 0;
                                        ArrayList<TreeMap<String, String>> lista = new ArrayList<>();
                                        //GWT.log("Por OFFSET TABELAVEICULODESENHADA 00 : " + TABELAVEICULODESENHADA);
                                        if (TabInicio.TABELAVEICULODESENHADA) {
                                            //GWT.log("1 Por OFFSET TABELAVEICULODESENHADA : " + TabInicio.TABELAVEICULODESENHADA);
                                            //GWT.log("2 Por OFFSET TABELAVEICULODESENHADA placaSelecao : " + placaSelecao);
                                            placaSelecao = veiculos.getSelectedRecord()
                                                    .getAttributeAsString("placa");
                                            //GWT.log("3 Por OFFSET TABELAVEICULODESENHADA  placaSelecao : " + placaSelecao);
                                            lista = (ArrayList<TreeMap<String, String>>) TabInicio.listaVeiculos
                                                    .get(placaSelecao);
                                            //GWT.log("4 Por OFFSET TABELAVEICULODESENHADA  placaSelecao : " + placaSelecao);
                                            //GWT.log("Por OFFSET POSICOES - placaSelecao: " + placaSelecao+" - DataReal: "+posicoesVeiculos.getRecord(posicoesVeiculos.getRecords().length - 1).getAttributeAsLong("dataEhoraReal"));
                                            dataReal = TabInicio.posicoesVeiculos
                                                    .getRecord(
                                                            TabInicio.posicoesVeiculos.getRecords().length - 1)
                                                    .getAttributeAsLong("dataEhoraReal");
                                            //GWT.log("Por OFFSET POSICOES - placaSelecao: " + placaSelecao+" - DataReal: "+dataReal);

                                        }

                                        if (!lista.isEmpty()) {
                                            TabInicio.posicoesSemEndereco.clear();
                                            for (TreeMap<String, String> k : lista) {
                                                Record registroPosicion = new Record();
                                                //registroPosicion.setAttribute("contador", "<strong>NV</strong>");
                                                registroPosicion.setAttribute("google",
                                                        "<a  href=\"http://maps.google.com.br/maps?q="
                                                                + k.get("lat") + "," + k.get("lon")
                                                                + "\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>");
                                                registroPosicion.setAttribute("codPosicao",
                                                        Integer.parseInt(k.get("codUltimo")));
                                                registroPosicion.setAttribute("lat", k.get("lat"));
                                                registroPosicion.setAttribute("lon", k.get("lon"));
                                                registroPosicion.setAttribute("dataEhoraReal",
                                                        Long.parseLong(k.get("dataHora")));
                                                //DateUtil.setDefaultDisplayTimezone("-03:00");
                                                //registroPosicion.setAttribute("dataEhora", DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM).format(new Timestamp(Long.parseLong(k.get("dataHora"))), TimeZone.createTimeZone(120)));
                                                registroPosicion.setAttribute("dataEhora",
                                                        k.get("dataHoraString"));
                                                //registroPosicion.setAttribute("sat", k.get("sat"));
                                                registroPosicion.setAttribute("sat", k.get("sat")
                                                        + " <img src=\"../imagens/satelite.png\" width=\"16\" height=\"16\" alt=\"Satlite\" title=\"Satlite\"/>");
                                                registroPosicion.setAttribute("gps",
                                                        (k.get("gps").equalsIgnoreCase("0"))
                                                                ? "<nbr class=\"positivo\">Atualizado</nbr>"
                                                                : "<nbr class=\"alerta\">Memria</nbr>");
                                                registroPosicion.setAttribute("vel", k.get("vel"));
                                                registroPosicion.setAttribute("ignReal",
                                                        Boolean.parseBoolean(k.get("ign")));
                                                //registroPosicion.setAttribute("ign", (Boolean.parseBoolean(k.get("ign"))) ? "<nbr class=\"positivo\">Ligada</nbr>" : "<nbr class=\negativo\">Desligada</nbr>");
                                                registroPosicion.setAttribute("ign",
                                                        (Boolean.parseBoolean(k.get("ign")))
                                                                ? "<img src=\"../imagens/ignligada.png\" width=\"16\" height=\"16\" alt=\"Ligada\" title=\"Ligada\"/>"
                                                                : "<img src=\"../imagens/igndesligada.png\" width=\"16\" height=\"16\" alt=\"desligada\"  title=\"Desligada\"/>");
                                                registroPosicion.setAttribute("entrada", k.get("entrada"));
                                                registroPosicion.setAttribute("saida", k.get("saida"));
                                                registroPosicion.setAttribute("evento", k.get("evento"));
                                                registroPosicion.setAttribute("endereco",
                                                        (k.get("endereco") == null) ? "Sem endereo"
                                                                : k.get("endereco"));
                                                registroPosicion.setAttribute("codDirecao",
                                                        k.get("codDirecao"));
                                                registroPosicion.setAttribute("direcao", k.get("direcao"));
                                                registroPosicion.setAttribute("fabricante",
                                                        k.get("fabricante"));
                                                registroPosicion.setAttribute("modelo", k.get("modelo"));
                                                registroPosicion.setAttribute("cor", k.get("cor"));
                                                registroPosicion.setAttribute("ano", k.get("ano"));
                                                registroPosicion.setAttribute("cliente", k.get("nomeCliente"));
                                                //GWT.log("atualizaVeiculosTodos: lat: "+k.get("endereco")+" lon: "+k.get("lon")+" end: "+k.get("endereco"));
                                                if (Long.parseLong(k.get("dataHora")) < dataReal) {
                                                    TabInicio.posicoesVeiculos.addData(registroPosicion);
                                                }
                                                if (k.get("endereco") == null) {
                                                    TabInicio.posicoesSemEndereco.add(registroPosicion);
                                                }
                                            }
                                        }
                                        //GWT.log("Por OFFSET POSICOES 2 : " + flagPosicoesDemanda);
                                        flagPosicoesDemanda = true;
                                        //GWT.log("Por OFFSET POSICOES 3 : " + flagPosicoesDemanda);
                                    } else {
                                        //veiculos.setDataSource(new DataSource());
                                        countThreadNovasDemanda++;
                                        GWT.log("LISTA DE POSIES EM LOTE EST? VAZIA!");
                                        flagPosicoesDemanda = true;

                                    }
                                }
                            });
                } else {
                    //countThreadNovasDemanda++;
                    //flagPosicoesDemanda = true;
                    GWT.log("ESPERANDO............. " + countThreadNovasDemanda);

                }
            } else {
                SC.warn("***** Voc est offline *****");
            }
        }
    };
    Info.atualizaVeiculosTodos.scheduleRepeating(5000);

    Info.atualizaVeiculosNovasPosicoes = new Timer() {

        @Override
        public void run() {
            if (Info.validaConexao()) {
                if (countThreadNovasPosicoes > 23) {
                    flagNovasPosicoes = true;
                    countThreadNovasPosicoes = 0;
                    codUltimaPosicaoAux = 1;
                }
                if (countThreadNovasDemanda > 48) {
                    TabInicio.offSet = 0;
                    offSetAux = -1;
                    countThreadNovasDemanda = 0;
                    //GWT.log("CANCELANDO: Info.atualizaVeiculosTodos.cancel()!");
                    Info.atualizaVeiculosTodos.cancel();
                    //GWT.log("CANCELADO: Info.atualizaVeiculosTodos.cancel()!");
                }
                //GWT.log("ANTES DO IF : inicio: "+inicio+" CINCO POSICOES: "+flagCincoPosicoes+" FLAG CEM POSICOES: "+flagPosicoesDemanda+" FLAG NOVAS POSICOES: " +flagNovasPosicoes + " codUltimaPosicao: "+codUltimaPosicao+" codUltimaPosicaoAux: "+codUltimaPosicaoAux);
                if (flagCincoPosicoes && flagNovasPosicoes
                        && TabInicio.codUltimaPosicao > codUltimaPosicaoAux) {
                    //GWT.log("FLAG DE NOVAS POSICOES 2 : " + flagNovasPosicoes);
                    flagNovasPosicoes = false;
                    //GWT.log("FLAG DE NOVAS POSICOES 3 : " + flagNovasPosicoes);
                    //GWT.log("(TabInicio) - buscarVeiculoPorUsuarioLogadoPosicoesNovas: codUsuario: " + Info.usuarioLogado.get("codUsuario") + " codUltimaPosicao: " + codUltimaPosicao);
                    //GWT.log("CodUsurio: "+Info.usuarioLogado.get("codUsuario")+" Info.posicoesSemEndereco: "+TabInicio.posicoesSemEndereco.size());
                    Info.dbService.buscarVeiculoPorUsuarioLogadoPosicoesNovas(
                            Integer.parseInt(Info.usuarioLogado.get("codUsuario")), TabInicio.codUltimaPosicao,
                            new AsyncCallback<TreeMap<String, Object>>() {

                                @Override
                                public void onFailure(Throwable caught) {
                                    SC.warn("Falha na conexo - PosicoesNovas");
                                }

                                @Override
                                public void onSuccess(TreeMap<String, Object> result) {
                                    //Timestamp dataUltimaPosicaoAuxiliar = new Timestamp((Long.parseLong(listaVeiculosAuxiliar.get(veiculos.getSelectedRecord().getAttributeAsString("placa")).get(0).get("dataHora"))));
                                    //GWT.log("LINHA do buscar posicoes novas!");
                                    //flagNovasPosicoes = true;
                                    countThreadNovasPosicoes = 0;
                                    //GWT.log("LINHA do buscar posicoes novas: "+codUltimaPosicao);
                                    if (result != null) {
                                        codUltimaPosicaoAux = TabInicio.codUltimaPosicao;
                                        TabInicio.codUltimaPosicao = Integer
                                                .parseInt(String.valueOf(result.get("MAXIMO")));
                                        Record registro = new Record();
                                        registro.setAttribute("dataHoraReal",
                                                new Timestamp(System.currentTimeMillis()).getTime());
                                        registro.setAttribute("log",
                                                "Linha da Thread atualiza novas Posicoes: " + DateTimeFormat
                                                        .getFormat(PredefinedFormat.DATE_TIME_MEDIUM)
                                                        .format(new Timestamp(System.currentTimeMillis())));
                                        TabLog.log.addData(registro);
                                        //GWT.log("LINHA 00 NOVAS POSICOES - M?XIMO: "+result.get("MAXIMO"));
                                        //veiculos.selectRecord(indexVeiculoPlaca);
                                        String placaSelecao = null;
                                        //GWT.log("FLAG DE NOVAS POSICOES TABELAVEICULODESENHADA 00 : " + TABELAVEICULODESENHADA);
                                        if (TabInicio.TABELAVEICULODESENHADA) {
                                            //GWT.log("FLAG DE NOVAS POSICOES TABELAVEICULODESENHADA : " + TABELAVEICULODESENHADA);
                                            placaSelecao = veiculos.getSelectedRecord()
                                                    .getAttributeAsString("placa");
                                            //GWT.log("LINHA 0001 NOVAS POSICOES - PLACA: " + placaSelecao);
                                        }
                                        //GWT.log("TABELA DESENHADA: " + TABELAVEICULODESENHADA);
                                        if (Integer.parseInt((String) result.get("MAXIMO")) > 0) {
                                            //GWT.log("LINHA 00012 NOVAS POSICOES - PLACA: "+placaSelecao);
                                            Info.enderecosResolvidos
                                                    .putAll((TreeMap<String, String>) result.get("ENDERECO"));
                                            //GWT.log("LINHA 01 NOVAS POSICOES - ENDERECOS RESOLVIDOS: " + Info.enderecosResolvidos.size());
                                            for (java.util.Map.Entry<String, Object> entrySet : result
                                                    .entrySet()) {
                                                //GWT.log("LINHA 02 NOVAS POSICOES" + codUltimaPosicao);
                                                String key = entrySet.getKey();
                                                if (!key.equalsIgnoreCase("OFFSET")
                                                        && !key.equalsIgnoreCase("MAXIMO")
                                                        && !key.equalsIgnoreCase("MINIMO")
                                                        && !key.equalsIgnoreCase("ENDERECO")
                                                        && !key.equalsIgnoreCase("GRUPO")) {
                                                    //if (!key.equalsIgnoreCase("MINIMO") && !key.equalsIgnoreCase("MAXIMO") && !key.equalsIgnoreCase("ENDERECO")) {
                                                    //GWT.log("LINHA 03 NOVAS POSICOES" + codUltimaPosicao);
                                                    ArrayList<TreeMap<String, String>> value = (ArrayList<TreeMap<String, String>>) entrySet
                                                            .getValue();
                                                    if (TabInicio.listaVeiculos.containsKey(key)) {
                                                        //GWT.log("LINHA 04 PLACA: "+key+" LINHA 04 NOVAS POSICOES" + codUltimaPosicao);
                                                        for (TreeMap<String, String> k : value) {
                                                            //GWT.log("LINHA 05: "+key+" LINHA 05 NOVAS POSICOES" + codUltimaPosicao);
                                                            ArrayList<TreeMap<String, String>> lista = (ArrayList<TreeMap<String, String>>) TabInicio.listaVeiculos
                                                                    .get(key);
                                                            TreeSet<TreeMap<String, String>> treeSetAux = new TreeSet<>(
                                                                    new OrdenaPosicao());
                                                            treeSetAux.addAll(lista);
                                                            //GWT.log("LINHA 06 Placa novas: ");
                                                            if (treeSetAux.add(k)) {
                                                                //GWT.log("LINHA 07 Placa novas: ");
                                                                if (key.equalsIgnoreCase(placaSelecao)) {
                                                                    //GWT.log("LINHA 08 Placa novas: ");
                                                                    //GWT.log("REMOVER: "+TabInicio.posicoesVeiculos.getRecord(TabInicio.posicoesVeiculos.getRecords().length - 1).getAttributeAsString("codPosicao"));
                                                                    ListGridRecord[] selecionados = TabInicio.posicoesVeiculos
                                                                            .getSelectedRecords();
                                                                    int indexSelecao = -5;
                                                                    int auxIndex = -3;
                                                                    if (selecionados.length == 1) {
                                                                        //GWT.log("LINHA 09 Placa novas: ");
                                                                        int index = TabInicio.posicoesVeiculos
                                                                                .getRecordIndex(
                                                                                        TabInicio.posicoesVeiculos
                                                                                                .getSelectedRecord());
                                                                        //GWT.log("LINHA 10 Placa novas: ");
                                                                        if (index == 0) {
                                                                            //GWT.log("LINHA 11 Placa novas: " + key);
                                                                            TabInicio.posicoesVeiculos
                                                                                    .deselectAllRecords();
                                                                            indexSelecao = 0;
                                                                            //GWT.log("LINHA 12 Placa novas: ");

                                                                        } else if (index == TabInicio.posicoesVeiculos
                                                                                .getRecords().length - 1) {
                                                                            //GWT.log("LINHA 13 Placa novas: ");
                                                                            //if(TabInicio.posicoesVeiculos.getRecords().length <= 100){
                                                                            TabInicio.posicoesVeiculos
                                                                                    .deselectAllRecords();
                                                                            //GWT.log("LINHA 14 Placa novas: ");
                                                                            indexSelecao = index;
                                                                            auxIndex = index;
                                                                            //GWT.log("Index ltimo 15: " + indexSelecao);
                                                                        }

                                                                    }
                                                                    if (TabInicio.posicoesVeiculos
                                                                            .getRecords().length >= 100) {
                                                                        //GWT.log("LINHA 16 Placa novas: ");
                                                                        TabInicio.posicoesVeiculos.removeData(
                                                                                TabInicio.posicoesVeiculos
                                                                                        .getRecord(
                                                                                                TabInicio.posicoesVeiculos
                                                                                                        .getRecords().length
                                                                                                        - 1));
                                                                        //GWT.log("LINHA 17 Placa novas: ");
                                                                    }
                                                                    //GWT.log("LINHA 18 Placa novas: ");
                                                                    Record registroPosicion = new Record();
                                                                    registroPosicion.setAttribute("google",
                                                                            "<a  href=\"http://maps.google.com.br/maps?q="
                                                                                    + k.get("lat") + ","
                                                                                    + k.get("lon")
                                                                                    + "\" title=\"Google maps\" target=\"_blank\"><img src=\"./imagens/mapa.png\" alt=\"Google\" height =\"16px\" width=\"16px\"></a>");
                                                                    registroPosicion.setAttribute("codPosicao",
                                                                            Integer.parseInt(
                                                                                    k.get("codUltimo")));
                                                                    registroPosicion.setAttribute("lat",
                                                                            k.get("lat"));
                                                                    registroPosicion.setAttribute("lon",
                                                                            k.get("lon"));
                                                                    registroPosicion.setAttribute(
                                                                            "dataEhoraReal",
                                                                            Long.parseLong(k.get("dataHora")));
                                                                    registroPosicion.setAttribute("dataEhora",
                                                                            k.get("dataHoraString"));
                                                                    registroPosicion.setAttribute("sat", k
                                                                            .get("sat")
                                                                            + " <img src=\"../imagens/satelite.png\" width=\"16\" height=\"16\" alt=\"Satlite\" title=\"Satlite\"/>");
                                                                    registroPosicion.setAttribute("gps",
                                                                            (k.get("gps").equalsIgnoreCase("0"))
                                                                                    ? "<nbr class=\"positivo\">Atualizado</nbr>"
                                                                                    : "<nbr class=\"alerta\">Memria</nbr>");
                                                                    registroPosicion.setAttribute("vel",
                                                                            k.get("vel"));
                                                                    registroPosicion.setAttribute("ignReal",
                                                                            Boolean.parseBoolean(k.get("ign")));
                                                                    registroPosicion.setAttribute("ign",
                                                                            (Boolean.parseBoolean(k.get("ign")))
                                                                                    ? "<img src=\"../imagens/ignligada.png\" width=\"16\" height=\"16\" alt=\"Ligada\" title=\"Ligada\"/>"
                                                                                    : "<img src=\"../imagens/igndesligada.png\" width=\"16\" height=\"16\" alt=\"desligada\"  title=\"Desligada\"/>");
                                                                    registroPosicion.setAttribute("entrada",
                                                                            k.get("entrada"));
                                                                    registroPosicion.setAttribute("saida",
                                                                            k.get("saida"));
                                                                    registroPosicion.setAttribute("evento",
                                                                            k.get("evento"));
                                                                    registroPosicion.setAttribute("endereco",
                                                                            (k.get("endereco") == null)
                                                                                    ? "Sem endereo"
                                                                                    : k.get("endereco"));
                                                                    registroPosicion.setAttribute("codDirecao",
                                                                            k.get("codDirecao"));
                                                                    registroPosicion.setAttribute("direcao",
                                                                            k.get("direcao"));
                                                                    registroPosicion.setAttribute("fabricante",
                                                                            k.get("fabricante"));
                                                                    registroPosicion.setAttribute("modelo",
                                                                            k.get("modelo"));
                                                                    registroPosicion.setAttribute("cor",
                                                                            k.get("cor"));
                                                                    registroPosicion.setAttribute("ano",
                                                                            k.get("ano"));
                                                                    registroPosicion.setAttribute("cliente",
                                                                            k.get("nomeCliente"));
                                                                    TabInicio.posicoesVeiculos
                                                                            .addData(registroPosicion);
                                                                    //GWT.log("atualizaVeiculosNovasPosicoes: lat: "+k.get("endereco")+" lon: "+k.get("lon")+" end: "+k.get("endereco"));
                                                                    if (k.get("endereco") == null) {
                                                                        TabInicio.posicoesSemEndereco
                                                                                .add(registroPosicion);
                                                                    }
                                                                    //GWT.log("LINHA 19 Placa novas: ");
                                                                    //GWT.log("POSICAO NOVA: "+k); 

                                                                    if ((selecionados.length == 1
                                                                            && indexSelecao == 0)
                                                                            || (selecionados.length == 1
                                                                                    && indexSelecao == auxIndex)) {
                                                                        //GWT.log("LINHA 20 Placa novas: ");
                                                                        TabInicio.posicoesVeiculos
                                                                                .selectRecord(indexSelecao);
                                                                        //GWT.log("Index Selecionado: " + indexSelecao);
                                                                        //GWT.log("LINHA 21 Placa novas: ");
                                                                    }
                                                                    //GWT.log("ENDEREO - POSICOES NOVAS: "+registroPosicion.getAttributeAsString("endereco"));
                                                                    if (registroPosicion
                                                                            .getAttributeAsString("endereco")
                                                                            .equalsIgnoreCase(
                                                                                    "Sem endereo")) {
                                                                        //GWT.log("LINHA 22 Placa novas: ");
                                                                        //int indexNovaPosicao = TabInicio.posicoesVeiculos.getRecordIndex(registroPosicion);
                                                                        TabInicio.posicoesSemEndereco
                                                                                .add(registroPosicion);
                                                                        //GWT.log("LINHA 23 Placa novas: ");
                                                                        buscaEndereco(registroPosicion
                                                                                .getAttributeAsString("lat"),
                                                                                registroPosicion
                                                                                        .getAttributeAsString(
                                                                                                "lon"),
                                                                                key, registroPosicion);
                                                                        //GWT.log("LINHA 24 Placa novas: ");
                                                                        //GWT.log("LINHA DA CHEGADA DA NOVA POSICAO");
                                                                    }

                                                                }
                                                                if (treeSetAux.size() >= 100) {
                                                                    //GWT.log("LINHA 25 Placa novas: ");
                                                                    treeSetAux.pollLast();
                                                                    //GWT.log("LINHA 26 Placa novas: ");
                                                                }
                                                                //GWT.log("LINHA 07 NOVAS POSICOES - REMOVEU LTIMO: " +treeSetAux.size());
                                                                lista.clear();
                                                                lista.addAll(treeSetAux);
                                                                //GWT.log("LINHA 27 Placa novas: ");
                                                                //GWT.log("LINHA 08 NOVAS POSICOES - ADICIONOU TREESET A LISTA: "+lista.size());
                                                                TabInicio.listaVeiculos.put(key, lista);
                                                                //GWT.log("LINHA 28 Placa novas: ");
                                                                //GWT.log("LINHA 09 NOVAS POSICOES - ADICIONOU LISTA AO TREEMAP GERAL");
                                                            }
                                                        }

                                                    } else {
                                                        //GWT.log("LINHA 29 Placa novas: ");
                                                        TabInicio.listaVeiculos.put(key, value);
                                                        Record recordVeiculos = new Record();
                                                        recordVeiculos.setAttribute("icone",
                                                                value.get(0).get("codIcone"));
                                                        recordVeiculos.setAttribute("placa",
                                                                value.get(0).get("placa"));
                                                        recordVeiculos.setAttribute("grupo",
                                                                value.get(0).get("nomeGrupo"));
                                                        TabInicio.dataSourcePlacas.addData(recordVeiculos);
                                                        TabInicio.veiculos.fetchData();
                                                        if (!TabHistorico.codPlacasHistorico
                                                                .containsKey(value.get(0).get("codVeiculo"))) {
                                                            TabHistorico.codPlacasHistorico.put(
                                                                    value.get(0).get("codVeiculo"),
                                                                    value.get(0).get("codVeiculo"));
                                                            Record recordVeiculosHist = new Record();
                                                            recordVeiculosHist.setAttribute("codigo",
                                                                    value.get(0).get("codVeiculo"));
                                                            recordVeiculosHist.setAttribute("placa",
                                                                    value.get(0).get("placa"));
                                                            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("codIcone"));
                                                            recordVeiculosHist.setAttribute("grupo",
                                                                    Info.usuarioLogado.get("nomeGrupo"));
                                                            recordVeiculosHist.setAttribute("cliente",
                                                                    value.get(0).get("nomeCliente"));
                                                            //GWT.log("LINHA 32 Placa novas: ");
                                                            TabHistorico.dataSoucePlacas
                                                                    .addData(recordVeiculosHist);
                                                            TabHistorico.veiculos.fetchData();
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        //GWT.log("LINHA 34 Placa novas: ");
                                        // diz para a thread que a consulta das novas posicoes foi feita;
                                        flagNovasPosicoes = true;
                                        //GWT.log("LINHA 35 Placa novas: ");

                                    } else {
                                        GWT.log("LISTA VAZIA!!!");
                                        flagNovasPosicoes = true;
                                    }
                                }
                            });
                } else {
                    //GWT.log("FLAG DE NOVAS POSICOES 4 : " + flagNovasPosicoes);
                    countThreadNovasPosicoes++;
                    //GWT.log("Contador de espera das novas posicoes: " + countThreadNovasPosicoes);
                    // GWT.log("FLAG DE NOVAS POSICOES 5 : " + flagNovasPosicoes);
                }
            } else {
                SC.warn("..:: Voc est offline ::..");
            }
        }
    };
    Info.atualizaVeiculosNovasPosicoes.scheduleRepeating(5000);

    Info.atualizaPosicoesSemEndereco = new Timer() {

        @Override
        public void run() {

            if (Info.validaConexao()) {
                final String placaSelecao = TabInicio.veiculos.getSelectedRecord()
                        .getAttributeAsString("placa");
                //GWT.log("Placa INCIIO : "+placaSelecao);
                if (TabInicio.posicoesSemEndereco.size() > 0) {

                    for (Record posicaoSemEndereco : TabInicio.posicoesSemEndereco) {

                        latEndereco = posicaoSemEndereco.getAttributeAsString("lat");
                        lonEndereco = posicaoSemEndereco.getAttributeAsString("lon");

                        String latLng = String.valueOf(latEndereco) + ";" + String.valueOf(lonEndereco);

                        if (Info.enderecosResolvidos.containsKey(latLng)) {

                            int index = TabInicio.posicoesVeiculos.getRecordIndex(posicaoSemEndereco);

                            if (index != -1) {
                                GWT.log("Info.enderecosResolvidos: " + "lat: " + latEndereco + " lon: "
                                        + lonEndereco + " end: " + Info.enderecosResolvidos.get(latLng));
                                TabInicio.posicoesVeiculos.getRecord(index).setAttribute("endereco",
                                        Info.enderecosResolvidos.get(latLng));
                                TabInicio.posicoesVeiculos.markForRedraw();
                                TabInicio.posicoesVeiculos.refreshRecordComponent(index, 13);
                                TabInicio.posicoesSemEndereco.remove(posicaoSemEndereco);

                                TreeMap<String, String> enderecoPosicao = new TreeMap<>();
                                enderecoPosicao.put("placa", placaSelecao);
                                //GWT.log("Placa selecionada INICIO 1 "+placaSelecao);
                                enderecoPosicao.put("lat", latEndereco);
                                enderecoPosicao.put("lon", lonEndereco);

                                TabInicio.posicoesSemEndereco.remove(posicaoSemEndereco);

                                ArrayList<TreeMap<String, String>> posicaoPlacaAux = (ArrayList<TreeMap<String, String>>) TabInicio
                                        .getListaVeiculos().get(placaSelecao);

                                for (int i = 0; i < posicaoPlacaAux.size(); i++) {
                                    //GWT.log("LINHA 999 TabInicio.FLAG_CONSULTA_ENDERECO_GOOGLE; placaSelecao: "+placaSelecao);
                                    if (Double.parseDouble(posicaoPlacaAux.get(i).get("lat")) == Double
                                            .parseDouble(latEndereco)
                                            && Double.parseDouble(posicaoPlacaAux.get(i).get("lon")) == Double
                                                    .parseDouble(lonEndereco)) {
                                        TreeMap<String, String> pAux = posicaoPlacaAux.get(i);
                                        pAux.put("endereco", Info.enderecosResolvidos.get(latLng));
                                        posicaoPlacaAux.set(i, pAux);
                                    }
                                }
                                TabInicio.setListaVeiculos(placaSelecao, posicaoPlacaAux);

                                Info.dbService.atualizarPosicaoEndereco(enderecoPosicao,
                                        new AsyncCallback<Boolean>() {

                                            @Override
                                            public void onFailure(Throwable caught) {
                                                Window.alert(
                                                        "atualizarPosicaoEnderecoInicio - A remote interface failure !: "
                                                                + caught.getMessage());
                                            }

                                            @Override
                                            public void onSuccess(Boolean result) {
                                                //GWT.log("Endereco atualizado no BD : " + result);
                                            }
                                        });

                            }

                        } else {
                            //for (int i = 0; i < 20; i++) {
                            //if (i == 19) {
                            if (flagBuscaEndereco) {
                                flagBuscaEndereco = false;
                                GWT.log("Meu sleep forado 1");
                                buscaEndereco(latEndereco, lonEndereco, placaSelecao, posicaoSemEndereco);
                                GWT.log("Meu sleep forado 2");
                            }
                            //}

                            //}
                        }
                    }

                } else {
                    //TabInicio.LIMIT_CONSULTA_ENDERECO_GOOGLE = 0;
                }
            } else {
                SC.warn("Voc est Offline!");
            }
        }
    };

}

From source file:com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabLogUsuario.java

public TabLogUsuario() {

    this.btnIniciar = new IButton("Iniciar");
    this.btnIniciar.setTitle("Iniciar buscador de logs de usurio");
    this.btnIniciar.setDisabled(true);

    this.btnParar = new IButton("Parar");
    this.btnParar.setTitle("Parar buscardor de logs de usurio");

    this.setTitle("Logs do usurio");
    this.tipoBusca = new RadioGroupItem();
    tipoBusca.setTitle(Info.titulosMsg.get("tipoBusca"));
    LinkedHashMap<String, String> tp = new LinkedHashMap<>();
    tp.put("1", "Usurios");
    tp.put("2", "Parmetros");
    tipoBusca.setValueMap(tp);//from  ww w  .j  av a  2  s .c  o  m
    tipoBusca.setRequired(true);
    tipoBusca.setValue("1");
    //tipoBusca.setShowTitle(false);
    tipoBusca.setAlign(Alignment.CENTER);
    tipoBusca.setTooltip("Buscar log de usurios");
    tipoBusca.setWidth(350);
    tipoBusca.setVertical(false);

    this.registrosGrid = new ListGrid();
    this.registrosGrid.setCanPickFields(false);
    this.registrosGrid.setSelectionType(SelectionStyle.MULTIPLE);
    this.registrosGrid.setCanDragSelect(true);
    this.registrosGrid.setCanAutoFitFields(false);
    this.registrosGrid.setCanAutoFitFields(false);
    //this.registrosGrid.setCanSort(false);
    this.registrosGrid.setCanGroupBy(false);
    this.registrosGrid.setCanFreezeFields(false);
    //this.registrosGrid.setSortDirection(SortDirection.DESCENDING);
    SortSpecifier sortSpecifier = new SortSpecifier("dataHoraReal", SortDirection.DESCENDING);
    this.registrosGrid.setSort(sortSpecifier);
    this.registrosGrid.setProgressiveLoading(true);

    final ListGridField codAgente = new ListGridField("codAgente", "cod Agente");
    codAgente.setAlign(Alignment.CENTER);
    codAgente.setHidden(true);
    final ListGridField nomeAgente = new ListGridField("nomeAgente", "Cliente / Funcionrio");
    nomeAgente.setAlign(Alignment.CENTER);
    nomeAgente.setWidth(150);
    final ListGridField codUsuario = new ListGridField("codUsuario", "cod Usurio");
    codUsuario.setAlign(Alignment.CENTER);
    codUsuario.setHidden(true);
    final ListGridField nomeUsuario = new ListGridField("nomeUsuario", "Usurio");
    nomeUsuario.setAlign(Alignment.CENTER);
    nomeUsuario.setWidth(80);
    final ListGridField codOperacao = new ListGridField("codOperacao", "cod Operao");
    codOperacao.setAlign(Alignment.CENTER);
    codOperacao.setHidden(true);
    final ListGridField operacao = new ListGridField("operacao", "Operao");
    operacao.setAlign(Alignment.CENTER);
    operacao.setWidth(200);
    final ListGridField dataHoraReal = new ListGridField("dataHoraReal", "Data e Hora");
    dataHoraReal.setAlign(Alignment.CENTER);
    dataHoraReal.setHidden(true);
    final ListGridField dataHora = new ListGridField("dataHora", "Data e Hora");
    dataHora.setAlign(Alignment.CENTER);
    dataHora.setWidth(120);
    final ListGridField parametro = new ListGridField("parametro", "Parmetros");
    parametro.setAlign(Alignment.CENTER);
    final ListGridField acessos = new ListGridField("acessos", "Acessos");
    acessos.setWidth(30);
    parametro.setAlign(Alignment.CENTER);

    this.registrosGrid.setFields(codAgente, nomeAgente, codUsuario, nomeUsuario, codOperacao, operacao,
            dataHoraReal, dataHora, parametro, acessos);

    this.formBusca = new DynamicForm();
    this.formBusca.setLayoutAlign(VerticalAlignment.CENTER);
    this.formBusca.setLayoutAlign(Alignment.CENTER);
    this.formBusca.setAlign(Alignment.CENTER);
    this.formBusca.setWidth(600);

    final ComboBoxItem itemUsuario = new ComboBoxItem();
    itemUsuario.setAddUnknownValues(false);
    itemUsuario.setTitle("Usurios");
    itemUsuario.setName("itemUsuario");
    itemUsuario.setHint("<nbr>*</nbr>");
    itemUsuario.setRequired(true);
    itemUsuario.setWidth(450);
    Info.dbService
            .buscarUsuarioPorUsuarioLogadoLogUsuario(new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    //GWT.log("interface - size listaUsuarios : "+result);
                    LinkedHashMap<String, String> hasMap = new LinkedHashMap<>();
                    hasMap.put("0", "Todos");
                    if (result != null) {

                        for (TreeMap<String, String> g : result) {
                            //GWT.log("grupos - size listaUsuarios - linha 01 : "+g.get("nomeCliente"));
                            String nome = (g.get("nomeFuncionario") == null)
                                    ? "  / CLIENTE: " + g.get("nomeCliente")
                                    : "  / FUNCION?RIO: " + g.get("nomeFuncionario");
                            hasMap.put(g.get("codUsuario"), "USU?RIO: " + g.get("nomeUsuario") + nome);
                        }
                        itemUsuario.setValueMap(hasMap);
                        itemUsuario.setValue("0");

                    } else {
                        hasMap.put("0", "No h usurios disponveis");
                        itemUsuario.setValueMap(hasMap);
                        itemUsuario.setValue("0");
                    }

                }

                @Override
                public void onFailure(Throwable caught) {
                    Info.fecharJanelaCarrgando();
                    SC.warn("FALHA na conexo! [Erro ao buscar buscar Usuario Por Usuario Logado LogUsuario]");
                }
            });

    final DateTimeItem itemDataEhoraInicio = new DateTimeItem("dataEhoraInicio", "Incio");
    itemDataEhoraInicio.setRequired(true);
    itemDataEhoraInicio.setHeight(18);
    itemDataEhoraInicio.setWidth(450);
    itemDataEhoraInicio.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATETIME);

    DateTimeFormat dateTimeFormat = DateTimeFormat.getFormat("dd/MM/yyyy HH:mm");
    TimeZone timeZone = TimeZone.createTimeZone(180);
    //itemDataEhora.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATETIME);        
    final Date dataManha = new Date(System.currentTimeMillis());
    //dateTimeFormat.format(dataOntem, timeZone);        
    itemDataEhoraInicio.setDefaultValue(dateTimeFormat.format(
            new Date(dataManha.getYear(), dataManha.getMonth(), dataManha.getDate(), 07, 45, 00), timeZone));
    itemDataEhoraInicio.setHint("<nbr>*</nbr>");
    itemDataEhoraInicio.setUseMask(true);

    final DateTimeItem itemDataEhoraFim = new DateTimeItem("dataEhoraFim", "Fim");
    itemDataEhoraFim.setRequired(true);
    itemDataEhoraFim.setHeight(18);
    itemDataEhoraFim.setWidth(450);
    itemDataEhoraFim.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATETIME);
    itemDataEhoraFim.setDefaultValue(dateTimeFormat.format(
            new Date(dataManha.getYear(), dataManha.getMonth(), dataManha.getDate(), 18, 15, 00), timeZone));
    itemDataEhoraFim.setHint("<nbr>*</nbr>");
    itemDataEhoraFim.setUseMask(true);

    final TextAreaItem itemParametros = new TextAreaItem("parametro", "Parmetros");
    itemParametros.setRequired(true);
    //itemParametros.setValidators(tamanhoTextItem);
    itemParametros.setHint("<nbr>*</nbr>");
    itemParametros.setWidth(450);
    itemParametros.setHeight(100);
    itemParametros.setLength(100);

    tipoBusca.addChangedHandler(new ChangedHandler() {

        @Override
        public void onChanged(ChangedEvent event) {
            String itemSelecionado = (String) event.getValue();
            if (itemSelecionado.equalsIgnoreCase("1")) {
                formBusca.showItem("itemUsuario");
                formBusca.showItem("dataEhoraInicio");
                formBusca.showItem("dataEhoraFim");
                formBusca.hideItem("parametro");
            } else {
                formBusca.hideItem("itemUsuario");
                formBusca.hideItem("dataEhoraInicio");
                formBusca.hideItem("dataEhoraFim");
                formBusca.showItem("parametro");
            }
        }
    });

    HLayout hButoes = new HLayout();
    hButoes.setWidth(200);
    hButoes.setHeight(20);
    //hButoes.setMembersMargin(3);
    hButoes.setLayoutAlign(Alignment.CENTER);
    hButoes.setAlign(Alignment.LEFT);
    final IButton pesquisar = new IButton("Pesquisar");
    pesquisar.setHeight(18);
    final IButton limpar = new IButton("Limpar");
    limpar.setHeight(18);
    hButoes.setMargin(5);
    hButoes.setMembersMargin(5);
    hButoes.addMember(pesquisar);
    hButoes.addMember(limpar);

    formBusca.setItems(tipoBusca, itemUsuario, itemDataEhoraInicio, itemDataEhoraFim, itemParametros);

    formBusca.showItem("itemUsuario");
    formBusca.showItem("dataEhoraInicio");
    formBusca.showItem("dataEhoraFim");
    formBusca.hideItem("parametro");

    pesquisar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            if (flagPararThreadNovosLogs) {
                flagPararThreadNovosLogs = false;
                btnIniciar.setDisabled(false);
                btnParar.setDisabled(true);
            }

            if (Integer.parseInt(tipoBusca.getValueAsString()) == 1) {

                registrosGrid.setData(new Record[0]);
                Timestamp dataIncio = new Timestamp(itemDataEhoraInicio.getValueAsDate().getTime());
                Timestamp dataFim = new Timestamp(itemDataEhoraFim.getValueAsDate().getTime());
                int codUsuario = Integer.parseInt(itemUsuario.getValueAsString());
                buscarPorUsuario(codUsuario, dataIncio, dataFim, itemDataEhoraFim);

            } else {

                registrosGrid.setData(new Record[0]);
                String parametro = itemParametros.getValueAsString();
                buscarPorParametro(parametro);

            }

        }
    });

    HLayout painelPai = new HLayout();
    painelPai.setWidth100();
    painelPai.setHeight100();
    painelPai.setAlign(Alignment.CENTER);
    painelPai.setLayoutAlign(Alignment.CENTER);

    VLayout painelBusca = new VLayout();
    //painelBusca.setMembersMargin(15);
    painelBusca.setWidth100();
    painelBusca.setAlign(Alignment.CENTER);
    painelBusca.setDefaultLayoutAlign(Alignment.CENTER);

    final SectionStackSection formSection = new SectionStackSection();
    formSection.setTitle("Buscar logs do usurio");
    formSection.setItems(formBusca, hButoes);
    formSection.setExpanded(true);
    //Criando o painel que ir armazenar to tab, sections e butoes
    VLayout painelNovoCliente = new VLayout();
    painelNovoCliente.setMembersMargin(15);
    //painelNovoCliente.setWidth(1000);
    painelNovoCliente.setDefaultLayoutAlign(Alignment.CENTER);

    final SectionStackSection dadosSection = new SectionStackSection();
    dadosSection.setTitle("Informaes dos log's");
    dadosSection.setItems(registrosGrid);
    dadosSection.setExpanded(true);
    dadosSection.setControls(btnIniciar, btnParar);

    final SectionStack buscarClientes = new SectionStack();
    buscarClientes.setSections(formSection, dadosSection);
    buscarClientes.setVisibilityMode(VisibilityMode.MULTIPLE);
    buscarClientes.setAnimateSections(true);
    buscarClientes.setWidth("70%");
    buscarClientes.setHeight100();
    buscarClientes.setOverflow(Overflow.VISIBLE);

    painelBusca.addMember(buscarClientes);
    painelPai.addMember(painelBusca);
    setPane(painelPai);

    // iNICIA A GRID COM UMA LISTA VAZIA DE REGISTROS DE LOG
    //registrosGrid.setData(new Record[0]);
    btnParar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            flagPararThreadNovosLogs = false;
            btnIniciar.setDisabled(false);
            btnParar.setDisabled(true);
        }
    });

    btnIniciar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            flagPararThreadNovosLogs = true;
            btnIniciar.setDisabled(true);
            btnParar.setDisabled(false);
        }
    });

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

        @Override
        public void onFailure(Throwable caught) {
            Info.fecharJanelaCarrgando();
            SC.warn("FALHA na conexo! [Erro ao buscar ltimos Logs]");
        }

        @Override
        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
            //SC.say("*");
            if (result != null) {
                //GWT.log("buscarUltimosLogsDoSis");
                for (TreeMap<String, String> log : result) {
                    Record registro = new Record();
                    registro.setAttribute("codAgente",
                            (log.get("nomeCliente") == null) ? log.get("codFunc") : log.get("codCliente"));
                    registro.setAttribute("nomeAgente",
                            (log.get("nomeCliente") == null) ? log.get("nomeFunc") : log.get("nomeCliente"));
                    registro.setAttribute("codUsuario", Integer.parseInt(log.get("codUsuario")));
                    registro.setAttribute("nomeUsuario", log.get("usuario"));
                    registro.setAttribute("codOperacao", Integer.parseInt(log.get("codOperacao")));
                    registro.setAttribute("operacao", log.get("operacao"));
                    registro.setAttribute("dataHoraReal", Long.parseLong(log.get("dataHora")));
                    registro.setAttribute("dataHora", log.get("dataHoraString"));
                    registro.setAttribute("parametro",
                            (log.get("parametro").equalsIgnoreCase("") || log.get("parametro") == null)
                                    ? "Sem informao"
                                    : log.get("parametro"));
                    registro.setAttribute("acessos", result.get(0).get("ACESSOS"));
                    registrosGrid.addData(registro);
                }

                // atualizada a flag dos ultimos 100 logs de usurio
                flagUltimosTrintaLogs = true;
                codMaiorLogSis = Integer.parseInt(result.get(0).get("MAXIMO"));

            } else {
                GWT.log("Nenhum log de usurio foi retornado! LISTA VAZIA!");
            }
        }
    });

    Info.atualizaLogUsuario = new Timer() {

        @Override
        public void run() {
            //SC.say("++++");
            if (Info.validaConexao()) {
                if (flagUltimosTrintaLogs && flagPararThreadNovosLogs && flagPararThreadNovosLogs
                        && codMaiorLogSis > codMaiorLogSisAux) {
                    flagThreadNovosLogs = false;
                    Info.dbService.buscarNovosLogSis(codMaiorLogSis,
                            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                                @Override
                                public void onFailure(Throwable caught) {
                                    Info.fecharJanelaCarrgando();
                                    SC.warn("FALHA na conexo! [Erro ao atualizar log]");
                                }

                                @Override
                                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                                    if (result != null) {
                                        //GWT.log("buscarNovosLogSis");
                                        flagThreadNovosLogs = true;
                                        codMaiorLogSisAux = codMaiorLogSis;
                                        codMaiorLogSis = Integer.parseInt(result.get(0).get("MAXIMO"));
                                        for (TreeMap<String, String> log : result) {
                                            Record registro = new Record();
                                            registro.setAttribute("codAgente",
                                                    (log.get("nomeCliente") == null) ? log.get("codFunc")
                                                            : log.get("codCliente"));
                                            registro.setAttribute("nomeAgente",
                                                    (log.get("nomeCliente") == null) ? log.get("nomeFunc")
                                                            : log.get("nomeCliente"));
                                            registro.setAttribute("codUsuario",
                                                    Integer.parseInt(log.get("codUsuario")));
                                            registro.setAttribute("nomeUsuario", log.get("usuario"));
                                            registro.setAttribute("codOperacao",
                                                    Integer.parseInt(log.get("codOperacao")));
                                            registro.setAttribute("operacao", log.get("operacao"));
                                            registro.setAttribute("dataHoraReal",
                                                    Long.parseLong(log.get("dataHora")));
                                            registro.setAttribute("dataHora", log.get("dataHoraString"));
                                            registro.setAttribute("parametro",
                                                    (log.get("parametro").equalsIgnoreCase("")
                                                            || log.get("parametro") == null)
                                                                    ? "Sem informao"
                                                                    : log.get("parametro"));
                                            registro.setAttribute("acessos", result.get(0).get("ACESSOS"));
                                            registrosGrid.addData(registro);
                                        }

                                    } else {
                                        flagThreadNovosLogs = true;
                                        //GWT.log("LISTA DE NOVOS LOGS EST? VAZIA!");
                                    }
                                }
                            });
                }
            }
        }
    };
    Info.atualizaLogUsuario.scheduleRepeating(10000);
}

From source file:com.automaster.autoview.client.ui.paineis.tabs.TabBuscarCliente.java

public void buscarPorCodCliente(int codCliente, final int codUnidCliente) {

    codUnidadeClienteSelecionado = codUnidCliente;
    dataSource = new DataSource();
    dataSource.setClientOnly(true);/* w w  w .  j  av a2  s.  com*/
    DataSourceTextField codigoDataSource = new DataSourceTextField("codigo",
            Info.titulosMsg.get("tituloCodigo"));
    codigoDataSource.setHidden(true);
    codigoDataSource.setRequired(true);
    codigoDataSource.setPrimaryKey(true);
    DataSourceTextField placaVeiculoDataSoruce = new DataSourceTextField("placa", Info.titulosMsg.get("lista"));
    placaVeiculoDataSoruce.setRequired(true);
    dataSource.setFields(codigoDataSource, placaVeiculoDataSoruce);

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

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

                @Override
                public void onSuccess(TreeMap<String, ArrayList<TreeMap<String, String>>> cliente) {
                    GWT.log("Linha buscarPorCodCliente 01");
                    if (cliente != null) {
                        //editCliente.setDisabled(false);
                        if (codigoUnidade == 1 || codUnidCliente == codigoUnidade) {
                            editCliente.setDisabled(false);
                            //editVeiculo.setDisabled(false);
                        } else {
                            editCliente.setDisabled(true);
                            //editVeiculo.setDisabled(true);
                        }
                        senhaCliente.setDisabled(false);
                        if (Info.usuarioLogado.containsKey("4")) {
                            totalDividaCliente.setDisabled(false);
                        }
                        //Fazendo Cpia do Cliente Retornado
                        setClienteEdicao(cliente);
                        //final ArrayList<TreeMap<String, String>> clienteAuxiliar = cliente.pollFirstEntry().getValue();
                        clienteAuxiliar = getClienteEdicao().get(getClienteEdicao().firstKey());
                        if (!dadosCliente.getRecordList().isEmpty()) {
                            dadosCliente.setData(new RecordList());
                        }
                        codigoCliente = Integer.parseInt(clienteAuxiliar.get(0).get("codCliente"));
                        nomeCliente = clienteAuxiliar.get(0).get("nomeCliente");
                        tipoCliente = Integer.parseInt(clienteAuxiliar.get(0).get("tipoCliente"));
                        codUnidadeCliente = Integer.parseInt(clienteAuxiliar.get(0).get("codUnidade"));
                        Record regCliente = new Record();
                        regCliente.setAttribute("codigo", codigoCliente);
                        regCliente.setAttribute("nome", clienteAuxiliar.get(0).get("nomeCliente"));
                        //DateUtil.setDefaultDisplayTimezone("-03:00");
                        //regCliente.setAttribute("dataAdesao", DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(new Date(Long.parseLong(clienteAuxiliar.get(0).get("dataAdesao"))), TimeZone.createTimeZone(120)));
                        regCliente.setAttribute("dataAdesao", clienteAuxiliar.get(0).get("dataAdesaoString"));
                        regCliente.setAttribute("unidade", clienteAuxiliar.get(0).get("nomeUnidade"));
                        regCliente.setAttribute("codEnvio", clienteAuxiliar.get(0).get("codEnvio"));
                        regCliente.setAttribute("modoEnvio", clienteAuxiliar.get(0).get("nomeCobranca"));
                        /* GWT.log("CPF: "+clienteAuxiliar.get(0).get("cpf"));
                         GWT.log("CNPJ: "+clienteAuxiliar.get(0).get("cnpj"));*/
                        dadosCliente.markForRedraw();

                        if (clienteAuxiliar.get(0).get("cpf") == null) {
                            cpfCnpj = Info.formataCNPJ(clienteAuxiliar.get(0).get("cnpj"));
                            regCliente.setAttribute("cnpj",
                                    Info.formataCNPJ(clienteAuxiliar.get(0).get("cnpj")));
                            //DateUtil.setDefaultDisplayTimezone("-03:00");
                            //regCliente.setAttribute("dataAbert", DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(new Date(Long.parseLong(clienteAuxiliar.get(0).get("dataAbertura"))), TimeZone.createTimeZone(120)));
                            regCliente.setAttribute("dataAbert",
                                    clienteAuxiliar.get(0).get("dataAberturaString"));
                            dadosCliente.setFields(nome, cnpj, dataAbert, dataAdesao, unidade, codigo, codEnvio,
                                    modoEnvio);
                            cnpj.setAlign(Alignment.CENTER);
                            dataAbert.setAlign(Alignment.CENTER);
                            dataAdesao.setAlign(Alignment.CENTER);

                        } else {
                            cpfCnpj = Info.formataCPF(clienteAuxiliar.get(0).get("cpf"));
                            regCliente.setAttribute("cpf", Info.formataCPF(clienteAuxiliar.get(0).get("cpf")));
                            //DateUtil.setDefaultDisplayTimezone("-03:00");
                            //regCliente.setAttribute("dataNasc", DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(new Date(Long.parseLong(clienteAuxiliar.get(0).get("dataNasc"))), TimeZone.createTimeZone(120)));
                            regCliente.setAttribute("dataNasc", clienteAuxiliar.get(0).get("dataNascString"));
                            dadosCliente.setFields(nome, cpf, dataNasc, dataAdesao, unidade, codigo, codEnvio,
                                    modoEnvio);
                            cpf.setAlign(Alignment.CENTER);
                            dataNasc.setAlign(Alignment.CENTER);
                            dataAdesao.setAlign(Alignment.CENTER);
                        }
                        dadosCliente.addData(regCliente);
                        if (!enderecos.getRecordList().isEmpty()) {
                            enderecos.setData(new RecordList());
                        }
                        TreeMap<String, String> endAuxiliar = new TreeMap<>();
                        for (TreeMap<String, String> ends : clienteAuxiliar) {
                            if (clienteAuxiliar.get(0).get("codEndereco") != null
                                    && endAuxiliar.get(ends.get("codEndereco")) == null) {
                                Record regEnd = new Record();
                                regEnd.setAttribute("codigo", Integer.parseInt(ends.get("codEndereco")));
                                regEnd.setAttribute("descricao", ends.get("descricaoEndereco"));
                                regEnd.setAttribute("logradouro", ends.get("logradouro"));
                                regEnd.setAttribute("numero", ends.get("numeroEndereco"));
                                regEnd.setAttribute("bairro", ends.get("bairro"));
                                regEnd.setAttribute("cep", ends.get("cep"));
                                regEnd.setAttribute("cidade", ends.get("nomeCidade"));
                                regEnd.setAttribute("cidadeCod", ends.get("codCidade"));
                                regEnd.setAttribute("estado", ends.get("estadoUf"));
                                regEnd.setAttribute("estadoCod", ends.get("codEstado"));
                                regEnd.setAttribute("referencia",
                                        (ends.get("referenciaEndereco") == null
                                                || ends.get("referenciaEndereco").equalsIgnoreCase("")
                                                        ? "Sem informao"
                                                        : ends.get("referenciaEndereco")));
                                enderecos.addData(regEnd);
                                endAuxiliar.put(ends.get("codEndereco"), ends.get("codEndereco"));
                            }
                        }
                        if (!telefones.getRecordList().isEmpty()) {
                            telefones.setData(new RecordList());
                        }
                        TreeMap<String, String> foneAuxiliar = new TreeMap<>();
                        for (TreeMap<String, String> tels : clienteAuxiliar) {
                            if (clienteAuxiliar.get(0).get("codFone") != null
                                    && foneAuxiliar.get(tels.get("codFone")) == null) {
                                Record regTel = new Record();
                                regTel.setAttribute("codigo", Integer.parseInt(tels.get("codFone")));
                                regTel.setAttribute("descricao", tels.get("descricaoFone"));
                                regTel.setAttribute("numero", Info.formataTelefone(tels.get("numeroFone")));
                                telefones.addData(regTel);
                                foneAuxiliar.put(tels.get("codFone"), tels.get("codFone"));
                            }
                        }
                        if (!emails.getRecordList().isEmpty()) {
                            emails.setData(new RecordList());
                        }

                        TreeMap<String, String> emailAuxiliar = new TreeMap<>();
                        for (TreeMap<String, String> ems : clienteAuxiliar) {
                            if (clienteAuxiliar.get(0).get("codEmail") != null
                                    && emailAuxiliar.get(ems.get("codEmail")) == null) {
                                Record regEmails = new Record();
                                regEmails.setAttribute("codigo", Integer.parseInt(ems.get("codEmail")));
                                regEmails.setAttribute("descricao", ems.get("descricaoEmail"));
                                regEmails.setAttribute("email", ems.get("email"));
                                emails.addData(regEmails);
                                emailAuxiliar.put(ems.get("codEmail"), ems.get("codEmail"));
                            }
                        }
                        if (!logins.getRecordList().isEmpty()) {
                            logins.setData(new RecordList());
                        }
                        TreeMap<String, String> usuarioAuxiliar = new TreeMap<>();
                        for (TreeMap<String, String> user : clienteAuxiliar) {
                            if (clienteAuxiliar.get(0).get("codUsuario") != null
                                    && usuarioAuxiliar.get(user.get("codUsuario")) == null) {
                                Record regUsers = new Record();
                                regUsers.setAttribute("codigo", Integer.parseInt(user.get("codUsuario")));
                                regUsers.setAttribute("usuario", user.get("usuario"));
                                regUsers.setAttribute("senha",
                                        (user.get("resetUsuario").equalsIgnoreCase("t")) ? "Alterada"
                                                : "Padro");
                                regUsers.setAttribute("statusCod", user.get("ativoUsuario"));
                                regUsers.setAttribute("status",
                                        ((user.get("ativoUsuario").equalsIgnoreCase("t")) ? "Ativo"
                                                : "Bloqueado"));
                                regUsers.setAttribute("codGrupo", user.get("codGrupo"));
                                regUsers.setAttribute("grupo", user.get("nomeGrupo"));
                                regUsers.setAttribute("resetUsuario",
                                        ((user.get("resetUsuario").equalsIgnoreCase("t")) ? "Resetado"
                                                : "Resetar"));
                                logins.addData(regUsers);
                                usuarioAuxiliar.put(user.get("codUsuario"), user.get("codUsuario"));
                            }
                        }
                        if (!lancamento.getRecordList().isEmpty()) {
                            lancamento.setData(new RecordList());
                        }
                        TreeMap<String, String> lancamentoAuxiliar = new TreeMap<>();
                        for (TreeMap<String, String> lanc : clienteAuxiliar) {
                            if (clienteAuxiliar.get(0).get("codLancamento") != null
                                    && lancamentoAuxiliar.get(lanc.get("codLancamento")) == null) {
                                Record regLanc = new Record();
                                regLanc.setAttribute("codigo", Integer.parseInt(lanc.get("codLancamento")));
                                //DateUtil.setDefaultDisplayTimezone("-03:00");
                                regLanc.setAttribute("data",
                                        DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_SHORT).format(
                                                new Date(Long.parseLong(lanc.get("dataLancamento"))),
                                                TimeZone.createTimeZone(120)));
                                regLanc.setAttribute("valor", "R$"
                                        + Info.formataSaldo(Double.parseDouble(lanc.get("valorLancamento"))));
                                lancamento.addData(regLanc);
                                lancamentoAuxiliar.put(lanc.get("codLancamento"), lanc.get("codLancamento"));
                            }
                        }
                        //editCliente.setDisabled(false);
                        addVeiculo.setDisabled(false);
                        //rastrearVeiculo.setDisabled(false);
                        //gerarContrato.redraw();
                        //download=\"Contrato.pdf\"
                        //gerarContrato.setContents("<a href=\"#\" onclick=\"window.open('./ContratoPfServlet', '_blank','menubar=no'><input type=\"button\" value=\"Gerar contrato\" disabled=\"disabled\"></a>");
                        Info.dbService.buscarVeiculoPorCliente(
                                Integer.parseInt(clienteAuxiliar.get(0).get("codCliente")),
                                new AsyncCallback<TreeMap<String, ArrayList<TreeMap<String, String>>>>() {

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

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

                                        //GWT.log("");
                                        GWT.log("Linha buscarVeiculoPorCliente 01");
                                        TabBuscarCliente.totalMensalidadesVeiculos = 0;
                                        veiculos = new TreeMap<>();
                                        if (dadosVeic != null) {
                                            if (!veicPlacas.getRecordList().isEmpty()) {
                                                veicPlacas.setData(new Record[0]);
                                                flagDrawGrid = false;
                                                veicPlacas.markForRedraw();
                                                tabelaVeiculos.setContents(tabelaVazia);
                                                tabelaVeiculos.redraw();
                                                indexVeiculoPlaca = 0;
                                            }
                                            //GWT.log("Linha buscarVeiculoPorCliente 02");
                                            veiculos = new TreeMap<>(dadosVeic);

                                            TreeMap<String, String> placasVeciuloAux = new TreeMap<>();
                                            for (Map.Entry<String, ArrayList<TreeMap<String, String>>> entrySet : dadosVeic
                                                    .entrySet()) {
                                                String key = entrySet.getKey();
                                                GWT.log("PLACA FRANGO: " + key);
                                                ArrayList<TreeMap<String, String>> value = entrySet.getValue();
                                                if (!placasVeciuloAux
                                                        .containsKey(value.get(0).get("placaVeiculo"))) {
                                                    Record recordVeiculos = new Record();
                                                    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"));
                                                    //dataSource.setCacheAllData(true);
                                                    //dataSource.setCacheData(recordVeiculos);
                                                    dataSource.addData(recordVeiculos);
                                                    //veicPlacas.setDataSource(dataSource);
                                                    //veicPlacas.fetchRelatedData(recordVeiculos, dataSource);
                                                    placasVeciuloAux.put(value.get(0).get("placaVeiculo"),
                                                            value.get(0).get("placaVeiculo"));
                                                    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);
                                                        }
                                                    }

                                                }
                                            }

                                            veicPlacas.setDataSource(dataSource);
                                            flagDrawGrid = true;
                                            if (veiculos.size() < 50) {
                                                if (flagDrawGrid) {
                                                    GWT.log("flagDrawGrid");
                                                    //veicPlacas.setDataSource(dataSource);
                                                    veicPlacas.fetchData();
                                                    veicPlacas.focus();
                                                    GWT.log("flagDrawGrid");
                                                }
                                            } else {
                                                new Timer() {
                                                    @Override
                                                    public void run() {
                                                        if (flagDrawGrid) {
                                                            GWT.log("flagDrawGrid");
                                                            //veicPlacas.setDataSource(dataSource);
                                                            veicPlacas.fetchData();
                                                            veicPlacas.focus();
                                                            GWT.log("flagDrawGrid");
                                                        }
                                                    }
                                                }.schedule(1000);
                                            }
                                            ///////////////////////////////////////////////////////////////////////////////////////
                                            Info.dbService.buscarTodasTaxas(
                                                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                                                        @Override
                                                        public void onSuccess(
                                                                ArrayList<TreeMap<String, String>> taxas) {
                                                            GWT.log("buscarTodasTaxas - Linha 01");
                                                            if (taxas != null) {
                                                                multa = 0;
                                                                juros = 0;
                                                                for (TreeMap<String, String> txs : taxas) {
                                                                    if (Integer.parseInt(
                                                                            txs.get("codTaxa")) == 1) {
                                                                        multa = Double
                                                                                .parseDouble(txs.get("valor"));
                                                                    } else if (Integer.parseInt(
                                                                            txs.get("codTaxa")) == 2) {
                                                                        juros = Double
                                                                                .parseDouble(txs.get("valor"));
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    });
                                            ///************************************************************************************************************************************************************////

                                            Info.dbService.buscarFaturaPorCliente(
                                                    Integer.parseInt(clienteAuxiliar.get(0).get("codCliente")),
                                                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                                                        @Override
                                                        public void onSuccess(
                                                                ArrayList<TreeMap<String, String>> faturasCliente) {
                                                            GWT.log("buscarFaturaPorCliente - Linha 01");
                                                            //////////////////////////////////////////////////////////////////****************************************\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                            Date dataAtual = new Date(
                                                                    System.currentTimeMillis());
                                                            long diaAtual = dataAtual.getTime();
                                                            long diferencaDeDatas = 0;
                                                            long diaVencimento = 0;
                                                            arrayFaturasBD.clear();
                                                            setTotalLancamentos(0);
                                                            setSaldo(0);
                                                            setTotalFaturas(0);
                                                            labelSaldoCliente.redraw();
                                                            labelSaldoCliente.setContents(
                                                                    "<strong style=\"font-size:15px; \">Saldo Atual: R$00,00\n</strong>");

                                                            TreeMap<String, String> faturaAuxiliar = new TreeMap<>();
                                                            if (faturasCliente != null) {
                                                                for (TreeMap<String, String> fats : faturasCliente) {
                                                                    if (faturasCliente.get(0)
                                                                            .get("codFatura") != null
                                                                            && faturaAuxiliar.get(fats.get(
                                                                                    "codFatura")) == null) {
                                                                        Date dataDeVencimento = new Date(
                                                                                Long.parseLong(fats.get(
                                                                                        "dataVencimento")));
                                                                        diaVencimento = dataDeVencimento
                                                                                .getTime();
                                                                        diferencaDeDatas = diaAtual
                                                                                - diaVencimento;
                                                                        TreeMap<String, String> faturaBD = new TreeMap<>();
                                                                        faturaBD.put("codFatura",
                                                                                fats.get("codFatura"));
                                                                        faturaBD.put("codCliente",
                                                                                fats.get("codCliente"));
                                                                        faturaBD.put("dataVencimento",
                                                                                fats.get("dataVencimento"));
                                                                        faturaBD.put("valor", String.valueOf(
                                                                                Info.formataSaldo(Double
                                                                                        .parseDouble(fats.get(
                                                                                                "valor")))));
                                                                        faturaBD.put("estado",
                                                                                fats.get("estado"));
                                                                        faturaBD.put("valorPago", (fats.get(
                                                                                "totalLancamentos") == null)
                                                                                        ? String.valueOf(Info
                                                                                                .formataSaldo(
                                                                                                        0))
                                                                                        : String.valueOf(Info
                                                                                                .formataSaldo(
                                                                                                        Double.parseDouble(
                                                                                                                fats.get(
                                                                                                                        "totalLancamentos")))));
                                                                        faturaBD.put("mesReferencia",
                                                                                fats.get("mes"));
                                                                        faturaBD.put("count", "0");
                                                                        double totalPago = (fats.get(
                                                                                "totalLancamentos") == null)
                                                                                        ? 0
                                                                                        : (Double.parseDouble(
                                                                                                fats.get(
                                                                                                        "totalLancamentos")));
                                                                        if (diferencaDeDatas <= 0) {
                                                                            double valor = Double.parseDouble(
                                                                                    fats.get("valor"));
                                                                            double valorAtualFatura = (totalPago == 0)
                                                                                    ? Info.formataDecimal(valor)
                                                                                    : Info.formataDecimal(Double
                                                                                            .parseDouble(fats
                                                                                                    .get("valor"))
                                                                                            - (totalPago));
                                                                            faturaBD.put("jurosEmulta", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Double.parseDouble(
                                                                                                    "0"))));
                                                                            faturaBD.put("valorApagar", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    (valorAtualFatura)))));
                                                                            faturaBD.put("valorTotal", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    Double.parseDouble(
                                                                                                            fats.get(
                                                                                                                    "valor"))))));
                                                                            diferencaDeDatas = 0;
                                                                        } else if (diferencaDeDatas > 0
                                                                                && diferencaDeDatas < 86400000) {
                                                                            double valor = Double.parseDouble(
                                                                                    fats.get("valor"));
                                                                            double valorAtualFatura = (totalPago == 0)
                                                                                    ? Info.formataDecimal(valor)
                                                                                            + (valor * multa)
                                                                                    : Info.formataDecimal(Double
                                                                                            .parseDouble(fats
                                                                                                    .get("valor"))
                                                                                            - (totalPago)
                                                                                            + (valor * multa));
                                                                            faturaBD.put("jurosEmulta", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            (Info.formataDecimal(
                                                                                                    valor * multa)))));
                                                                            faturaBD.put("valorApagar", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    valorAtualFatura))));
                                                                            faturaBD.put("valorTotal", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    Double.parseDouble(
                                                                                                            fats.get(
                                                                                                                    "valor"))
                                                                                                            + ((Double
                                                                                                                    .parseDouble(
                                                                                                                            fats.get(
                                                                                                                                    "valor"))
                                                                                                                    * multa))))));
                                                                            diferencaDeDatas = 0;
                                                                        } else if (diferencaDeDatas > 86400000) {
                                                                            double valor = Double.parseDouble(
                                                                                    fats.get("valor"));
                                                                            double valorAtualFatura = (totalPago == 0)
                                                                                    ? Info.formataDecimal(valor)
                                                                                            + (valor * multa)
                                                                                            + ((diferencaDeDatas
                                                                                                    / 86400000)
                                                                                                    * (juros * valor))
                                                                                    : Info.formataDecimal(Double
                                                                                            .parseDouble(fats
                                                                                                    .get("valor"))
                                                                                            - (totalPago)
                                                                                            + (valor * multa)
                                                                                            + ((diferencaDeDatas
                                                                                                    / 86400000)
                                                                                                    * (juros * valor)));
                                                                            faturaBD.put("jurosEmulta", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    (valor * multa)
                                                                                                            + ((diferencaDeDatas
                                                                                                                    / 86400000)
                                                                                                                    * (juros * valor))))));
                                                                            faturaBD.put("valorApagar", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    valorAtualFatura))));
                                                                            faturaBD.put("valorTotal", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    Double.parseDouble(
                                                                                                            fats.get(
                                                                                                                    "valor"))
                                                                                                            + ((Double
                                                                                                                    .parseDouble(
                                                                                                                            fats.get(
                                                                                                                                    "valor"))
                                                                                                                    * multa))
                                                                                                            + ((diferencaDeDatas
                                                                                                                    / 86400000)
                                                                                                                    * (juros * Double
                                                                                                                            .parseDouble(
                                                                                                                                    fats.get(
                                                                                                                                            "valor"))))))));
                                                                            diferencaDeDatas = 0;
                                                                        }
                                                                        arrayFaturasBD.add(faturaBD);
                                                                        faturaAuxiliar.put(
                                                                                fats.get("codFatura"),
                                                                                fats.get("codFatura"));
                                                                    }
                                                                }
                                                            }
                                                            //////////////////////////////////////////////////*******************************************\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\            
                                                            for (TreeMap<String, String> fats : arrayFaturasBD) {
                                                                setTotalFaturas(getTotalFaturas() + ((Double
                                                                        .parseDouble(fats.get("valorPago")
                                                                                .replaceAll("\\.", "")
                                                                                .replaceAll(",", ".")) > 0
                                                                        && Boolean.parseBoolean(fats.get(
                                                                                "estado")) == true) ? Double
                                                                                        .parseDouble(fats.get(
                                                                                                "valorPago")
                                                                                                .replaceAll(
                                                                                                        "\\.",
                                                                                                        "")
                                                                                                .replaceAll(",",
                                                                                                        "."))
                                                                                        : (Double.parseDouble(
                                                                                                fats.get(
                                                                                                        "valorPago")
                                                                                                        .replaceAll(
                                                                                                                "\\.",
                                                                                                                "")
                                                                                                        .replaceAll(
                                                                                                                ",",
                                                                                                                "."))
                                                                                                + Double.parseDouble(
                                                                                                        fats.get(
                                                                                                                "valorApagar")
                                                                                                                .replaceAll(
                                                                                                                        "\\.",
                                                                                                                        "")
                                                                                                                .replaceAll(
                                                                                                                        ",",
                                                                                                                        ".")))));

                                                            }
                                                            ////////////////////////////////////////////////////////****************************************************////////////////////////////////////
                                                            Info.dbService.buscarTotalLancamentos(
                                                                    Integer.parseInt(clienteAuxiliar.get(0)
                                                                            .get("codCliente")),
                                                                    new AsyncCallback<Double>() {

                                                                        @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(Double totLanc) {

                                                                            GWT.log("buscarTotalLancamentos - Linha 01");

                                                                            setTotalLancamentos(totLanc);
                                                                            setSaldo(getTotalLancamentos()
                                                                                    - getTotalFaturas());

                                                                            if (getSaldo() == 0) {
                                                                                labelSaldoCliente.redraw();
                                                                                labelSaldoCliente.setContents(
                                                                                        "<strong style=\"font-size:15px; \">"
                                                                                                + Info.titulosMsg
                                                                                                        .get("saldoAtual")
                                                                                                + "00,00\n</strong>");
                                                                            } else if (getSaldo() > 0) {
                                                                                labelSaldoCliente.redraw();
                                                                                labelSaldoCliente.setContents(
                                                                                        "<strong style=\"font-size:15px; color:green; \">"
                                                                                                + Info.titulosMsg
                                                                                                        .get("creditoAtual")
                                                                                                + Info.formataSaldo(
                                                                                                        Info.formataDecimal(
                                                                                                                getSaldo()))
                                                                                                + "\n</strong>");
                                                                            } else {
                                                                                labelSaldoCliente.redraw();
                                                                                labelSaldoCliente.setContents(
                                                                                        "<strong style=\"font-size:15px; color:red; \">"
                                                                                                + Info.titulosMsg
                                                                                                        .get("debitoAtual")
                                                                                                + Info.formataSaldo(
                                                                                                        Info.formataDecimal(
                                                                                                                getSaldo()))
                                                                                                + "\n</strong>");
                                                                            }

                                                                        }
                                                                    });
                                                        }
                                                    });
                                            ///////////////////////////////////////////////////////////////////////////////////////
                                        } else {
                                            //rastrearVeiculo.setDisabled(true);
                                            //editVeiculo.setDisabled(true);
                                            //addComando.setDisabled(true);
                                            historicoVeiculo.setDisabled(true);
                                            rastrearVeiculo.setDisabled(true);
                                            gerarContrato.setDisabled(true);
                                            editVeiculo.setDisabled(true);
                                            addComando.setDisabled(true);
                                            veicPlacas.setData(new Record[0]);
                                            flagDrawGrid = false;
                                            veicPlacas.markForRedraw();
                                            tabelaVeiculos.setContents(tabelaVazia);
                                            tabelaVeiculos.redraw();
                                            indexVeiculoPlaca = 0;
                                            //GWT.log("Linha buscarVeiculoPorCliente 03");
                                            ///////////////////////////////////////////////////////////////////////////////////////                                
                                            Info.dbService.buscarTodasTaxas(
                                                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                                                        @Override
                                                        public void onSuccess(
                                                                ArrayList<TreeMap<String, String>> taxas) {
                                                            if (taxas != null) {
                                                                multa = 0;
                                                                juros = 0;
                                                                for (TreeMap<String, String> txs : taxas) {
                                                                    if (Integer.parseInt(
                                                                            txs.get("codTaxa")) == 1) {
                                                                        multa = Double
                                                                                .parseDouble(txs.get("valor"));
                                                                    } else if (Integer.parseInt(
                                                                            txs.get("codTaxa")) == 2) {
                                                                        juros = Double
                                                                                .parseDouble(txs.get("valor"));
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    });
                                            ///************************************************************************************************************************************************************////

                                            Info.dbService.buscarFaturaPorCliente(
                                                    Integer.parseInt(clienteAuxiliar.get(0).get("codCliente")),
                                                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                                                        @Override
                                                        public void onSuccess(
                                                                ArrayList<TreeMap<String, String>> faturasCliente) {
                                                            //////////////////////////////////////////////////////////////////****************************************\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
                                                            Date dataAtual = new Date(
                                                                    System.currentTimeMillis());
                                                            long diaAtual = dataAtual.getTime();
                                                            long diferencaDeDatas = 0;
                                                            long diaVencimento = 0;
                                                            arrayFaturasBD.clear();
                                                            setTotalLancamentos(0);
                                                            setSaldo(0);
                                                            setTotalFaturas(0);
                                                            labelSaldoCliente.redraw();
                                                            labelSaldoCliente.setContents(
                                                                    "<strong style=\"font-size:15px; \">Saldo Atual: R$00,00\n</strong>");

                                                            TreeMap<String, String> faturaAuxiliar = new TreeMap<>();
                                                            if (faturasCliente != null) {
                                                                for (TreeMap<String, String> fats : faturasCliente) {
                                                                    if (faturasCliente.get(0)
                                                                            .get("codFatura") != null
                                                                            && faturaAuxiliar.get(fats.get(
                                                                                    "codFatura")) == null) {
                                                                        Date dataDeVencimento = new Date(
                                                                                Long.parseLong(fats.get(
                                                                                        "dataVencimento")));
                                                                        diaVencimento = dataDeVencimento
                                                                                .getTime();
                                                                        diferencaDeDatas = diaAtual
                                                                                - diaVencimento;
                                                                        TreeMap<String, String> faturaBD = new TreeMap<>();
                                                                        faturaBD.put("codFatura",
                                                                                fats.get("codFatura"));
                                                                        faturaBD.put("codCliente",
                                                                                fats.get("codCliente"));
                                                                        faturaBD.put("dataVencimento",
                                                                                fats.get("dataVencimento"));
                                                                        faturaBD.put("valor", String.valueOf(
                                                                                Info.formataSaldo(Double
                                                                                        .parseDouble(fats.get(
                                                                                                "valor")))));
                                                                        faturaBD.put("estado",
                                                                                fats.get("estado"));
                                                                        faturaBD.put("valorPago", (fats.get(
                                                                                "totalLancamentos") == null)
                                                                                        ? String.valueOf(Info
                                                                                                .formataSaldo(
                                                                                                        0))
                                                                                        : String.valueOf(Info
                                                                                                .formataSaldo(
                                                                                                        Double.parseDouble(
                                                                                                                fats.get(
                                                                                                                        "totalLancamentos")))));
                                                                        faturaBD.put("mesReferencia",
                                                                                fats.get("mes"));
                                                                        faturaBD.put("count", "0");
                                                                        double totalPago = (fats.get(
                                                                                "totalLancamentos") == null)
                                                                                        ? 0
                                                                                        : (Double.parseDouble(
                                                                                                fats.get(
                                                                                                        "totalLancamentos")));
                                                                        if (diferencaDeDatas <= 0) {
                                                                            double valor = Double.parseDouble(
                                                                                    fats.get("valor"));
                                                                            double valorAtualFatura = (totalPago == 0)
                                                                                    ? Info.formataDecimal(valor)
                                                                                    : Info.formataDecimal(Double
                                                                                            .parseDouble(fats
                                                                                                    .get("valor"))
                                                                                            - (totalPago));
                                                                            faturaBD.put("jurosEmulta", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Double.parseDouble(
                                                                                                    "0"))));
                                                                            faturaBD.put("valorApagar", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    (valorAtualFatura)))));
                                                                            faturaBD.put("valorTotal", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    Double.parseDouble(
                                                                                                            fats.get(
                                                                                                                    "valor"))))));
                                                                            diferencaDeDatas = 0;
                                                                        } else if (diferencaDeDatas > 0
                                                                                && diferencaDeDatas < 86400000) {
                                                                            double valor = Double.parseDouble(
                                                                                    fats.get("valor"));
                                                                            double valorAtualFatura = (totalPago == 0)
                                                                                    ? Info.formataDecimal(valor)
                                                                                            + (valor * multa)
                                                                                    : Info.formataDecimal(Double
                                                                                            .parseDouble(fats
                                                                                                    .get("valor"))
                                                                                            - (totalPago)
                                                                                            + (valor * multa));
                                                                            faturaBD.put("jurosEmulta", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            (Info.formataDecimal(
                                                                                                    valor * multa)))));
                                                                            faturaBD.put("valorApagar", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    valorAtualFatura))));
                                                                            faturaBD.put("valorTotal", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    Double.parseDouble(
                                                                                                            fats.get(
                                                                                                                    "valor"))
                                                                                                            + ((Double
                                                                                                                    .parseDouble(
                                                                                                                            fats.get(
                                                                                                                                    "valor"))
                                                                                                                    * multa))))));
                                                                            diferencaDeDatas = 0;
                                                                        } else if (diferencaDeDatas > 86400000) {
                                                                            double valor = Double.parseDouble(
                                                                                    fats.get("valor"));
                                                                            double valorAtualFatura = (totalPago == 0)
                                                                                    ? Info.formataDecimal(valor)
                                                                                            + (valor * multa)
                                                                                            + ((diferencaDeDatas
                                                                                                    / 86400000)
                                                                                                    * (juros * valor))
                                                                                    : Info.formataDecimal(Double
                                                                                            .parseDouble(fats
                                                                                                    .get("valor"))
                                                                                            - (totalPago)
                                                                                            + (valor * multa)
                                                                                            + ((diferencaDeDatas
                                                                                                    / 86400000)
                                                                                                    * (juros * valor)));
                                                                            faturaBD.put("jurosEmulta", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    (valor * multa)
                                                                                                            + ((diferencaDeDatas
                                                                                                                    / 86400000)
                                                                                                                    * (juros * valor))))));
                                                                            faturaBD.put("valorApagar", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    valorAtualFatura))));
                                                                            faturaBD.put("valorTotal", String
                                                                                    .valueOf(Info.formataSaldo(
                                                                                            Info.formataDecimal(
                                                                                                    Double.parseDouble(
                                                                                                            fats.get(
                                                                                                                    "valor"))
                                                                                                            + ((Double
                                                                                                                    .parseDouble(
                                                                                                                            fats.get(
                                                                                                                                    "valor"))
                                                                                                                    * multa))
                                                                                                            + ((diferencaDeDatas
                                                                                                                    / 86400000)
                                                                                                                    * (juros * Double
                                                                                                                            .parseDouble(
                                                                                                                                    fats.get(
                                                                                                                                            "valor"))))))));
                                                                            diferencaDeDatas = 0;
                                                                        }
                                                                        arrayFaturasBD.add(faturaBD);
                                                                        faturaAuxiliar.put(
                                                                                fats.get("codFatura"),
                                                                                fats.get("codFatura"));
                                                                    }
                                                                }
                                                            }
                                                            //////////////////////////////////////////////////*******************************************\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\            
                                                            for (TreeMap<String, String> fats : arrayFaturasBD) {
                                                                setTotalFaturas(getTotalFaturas() + ((Double
                                                                        .parseDouble(fats.get("valorPago")
                                                                                .replaceAll("\\.", "")
                                                                                .replaceAll(",", ".")) > 0
                                                                        && Boolean.parseBoolean(fats.get(
                                                                                "estado")) == true) ? Double
                                                                                        .parseDouble(fats.get(
                                                                                                "valorPago")
                                                                                                .replaceAll(
                                                                                                        "\\.",
                                                                                                        "")
                                                                                                .replaceAll(",",
                                                                                                        "."))
                                                                                        : (Double.parseDouble(
                                                                                                fats.get(
                                                                                                        "valorPago")
                                                                                                        .replaceAll(
                                                                                                                "\\.",
                                                                                                                "")
                                                                                                        .replaceAll(
                                                                                                                ",",
                                                                                                                "."))
                                                                                                + Double.parseDouble(
                                                                                                        fats.get(
                                                                                                                "valorApagar")
                                                                                                                .replaceAll(
                                                                                                                        "\\.",
                                                                                                                        "")
                                                                                                                .replaceAll(
                                                                                                                        ",",
                                                                                                                        ".")))));

                                                            }
                                                            ////////////////////////////////////////////////////////****************************************************////////////////////////////////////
                                                            Info.dbService.buscarTotalLancamentos(
                                                                    Integer.parseInt(clienteAuxiliar.get(0)
                                                                            .get("codCliente")),
                                                                    new AsyncCallback<Double>() {

                                                                        @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(Double totLanc) {

                                                                            setTotalLancamentos(totLanc);
                                                                            setSaldo(getTotalLancamentos()
                                                                                    - getTotalFaturas());

                                                                            if (getSaldo() == 0) {
                                                                                labelSaldoCliente.redraw();
                                                                                labelSaldoCliente.setContents(
                                                                                        "<strong style=\"font-size:15px; \">"
                                                                                                + Info.titulosMsg
                                                                                                        .get("saldoAtual")
                                                                                                + "00,00\n</strong>");
                                                                            } else if (getSaldo() > 0) {
                                                                                labelSaldoCliente.redraw();
                                                                                labelSaldoCliente.setContents(
                                                                                        "<strong style=\"font-size:15px; color:green; \">"
                                                                                                + Info.titulosMsg
                                                                                                        .get("creditoAtual")
                                                                                                + Info.formataSaldo(
                                                                                                        Info.formataDecimal(
                                                                                                                getSaldo()))
                                                                                                + "\n</strong>");
                                                                            } else {
                                                                                labelSaldoCliente.redraw();
                                                                                labelSaldoCliente.setContents(
                                                                                        "<strong style=\"font-size:15px; color:red; \">"
                                                                                                + Info.titulosMsg
                                                                                                        .get("debitoAtual")
                                                                                                + Info.formataSaldo(
                                                                                                        Info.formataDecimal(
                                                                                                                getSaldo()))
                                                                                                + "\n</strong>");
                                                                            }

                                                                        }
                                                                    });
                                                        }
                                                    });
                                            ///////////////////////////////////////////////////////////////////////////////////////
                                        }
                                    }
                                });

                    } else {
                        // errro ao consultar os veiculos do cliente //
                        editCliente.setDisabled(true);
                        //rastrearVeiculo.setDisabled(true);
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 282,
                                new Timestamp(System.currentTimeMillis()),
                                "cliente: " + buscaCliente.getValueAsString());
                        SC.warn(Info.titulosMsg.get("erroConsultaCliente"));
                    }

                }
            });

}

From source file:com.automaster.autoview.client.ui.paineis.Topo.java

public Topo() {

    this.setWidth100();
    this.setHeight(67);
    this.setBackgroundImage("../imagens/backgroundCinza.png");
    this.setBackgroundRepeat(BackgroundRepeat.REPEAT_X);
    //setAlign(Alignment.CENTER);
    //final HLayout topoAux = this; 
    final Image logo = new Image("imagens/autoView.png");
    logo.setTitle("autoView");
    logo.setAltText("AutoView Web");
    logo.addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {

        @Override// w  w w. j  a  v  a  2  s .c  om
        public void onClick(ClickEvent event) {
            SC.say("Verso 1.31. Todos os direitos reservados AutoMaster 2016 &copy;. Develop tool: [Adriano Vale].");
        }
    });
    HLayout painelLogo = new HLayout();
    painelLogo.setMargin(5);
    painelLogo.setHeight(60);
    painelLogo.setWidth("80%");
    painelLogo.setLayoutAlign(Alignment.LEFT);
    painelLogo.addMember(logo);

    final Image logoAuto = new Image("imagens/autoMaster.png");
    logo.setTitle("autoView");
    logoAuto.setAltText("AutoMaster");
    logoAuto.addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            SC.say("Verso 1.31. Todos os direitos reservados AutoMaster 2016 &copy;. Develop tool: [Adriano Vale].");
        }
    });
    HLayout painelLogoAuto = new HLayout();
    painelLogoAuto.setMargin(5);
    //painelLogoAuto.setWidth(210);
    painelLogoAuto.setHeight(60);
    painelLogoAuto.setWidth("70%");
    painelLogoAuto.setLayoutAlign(Alignment.CENTER);
    painelLogoAuto.addMember(logoAuto);
    /*Label label = new Label("<strong><h3>AutoView Web</h3></strong>");
     label.setAlign(Alignment.CENTER);
     label.setWidth100();*/

    final Label labelDataHora = new Label();
    labelDataHora.setAlign(Alignment.CENTER);
    labelDataHora.setWidth(180);
    labelDataHora.setHeight(30);

    Info.relogio = new Timer() {
        @Override
        public void run() {
            if (Info.validaConexao()) {
                final String dataAtual = DateTimeFormat.getFormat(PredefinedFormat.DATE_LONG)
                        .format(new Timestamp(System.currentTimeMillis()), TimeZone.createTimeZone(180));
                final String hora = DateTimeFormat.getFormat(PredefinedFormat.TIME_MEDIUM)
                        .format(new Timestamp(System.currentTimeMillis()), TimeZone.createTimeZone(180));
                labelDataHora.setContents("<strong> " + dataAtual + " " + hora + "</strong>");
            }
            //GWT.log(""+new Timestamp(System.currentTimeMillis()));
        }
    };
    Info.relogio.scheduleRepeating(1000);

    Menu menuUsuario = new Menu();
    menuUsuario.setShowShadow(true);
    menuUsuario.setShadowDepth(10);
    menuUsuario.setWidth(180);
    final MenuItemSeparator separator = new MenuItemSeparator();

    //        MenuItem menuItemNovoUsuario = new MenuItem("Adicionar usurio de cliente", "../imagens/add.png");
    //        menuItemNovoUsuario.addClickHandler(new ClickHandler() {
    //
    //            @Override
    //            public void onClick(MenuItemClickEvent event) {
    //                NovoUsuarioCliente novoUsuarioCliente = new NovoUsuarioCliente();
    //                novoUsuarioCliente.setAnimateTime(1200);
    //                novoUsuarioCliente.animateShow(AnimationEffect.FADE);
    //            }
    //        });
    MenuItem menuItemEditarSenha = new MenuItem("Editar minha senha", "../imagens/edit.png");
    menuItemEditarSenha.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(MenuItemClickEvent event) {
            EditarSenha editarSenha = new EditarSenha();
            editarSenha.setAnimateTime(1200);
            editarSenha.animateShow(AnimationEffect.FADE);
        }
    });
    MenuItem menuItemSair = new MenuItem("Sair", "../imagens/exit.png");
    menuItemSair.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(MenuItemClickEvent event) {
            SC.ask("Sair", Info.usuarioLogado.get("nomeUsuario") + " voc deseja realmente sair?",
                    new BooleanCallback() {

                        @Override
                        public void execute(Boolean value) {
                            if (value != null && value) {
                                // usurio saiu do sistema //
                                Cookies.removeCookie("usuario");
                                Cookies.removeCookie("senha");
                                Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 47,
                                        new Timestamp(System.currentTimeMillis()),
                                        "Usurio: " + Info.usuarioLogado.get("nomeUsuario"));
                                Info.usuarioLogado.clear();
                                Info.enderecosResolvidos.clear();
                                Info.relogio.cancel();
                                TabFrota.atualizaFrota.cancel();
                                Info.atualizaVeiculosTodos.cancel();
                                Info.atualizaVeiculosNovasPosicoes.cancel();
                                Info.atualizaPosicoesSemEndereco.cancel();
                                Info.atualizaPosicoesSemEnderecoHistorico.cancel();
                                if (Info.atualizaVeiculosTodos.isRunning()) {
                                    GWT.log("CANCELOU: Info.atualizaVeiculosTodos.cancel();");
                                    Info.atualizaVeiculosTodos.cancel();
                                    GWT.log("CANCELOU: Info.atualizaVeiculosTodos.cancel();");
                                }
                                Info.atualizaLogUsuario.cancel();
                                Info.painelPrincipal.trocarPainel(new Login());
                            }
                        }
                    });
        }
    });
    menuUsuario.setItems(menuItemEditarSenha, separator, menuItemSair);

    MenuButton menuButton = new MenuButton("<strong>" + Info.usuarioLogado.get("nomeUsuario") + "</strong>",
            menuUsuario);
    menuButton.setWidth(180);
    menuButton.setHeight(30);
    menuButton.setAlign(Alignment.CENTER);

    //painelLogo.addMember(menuButton);
    VLayout painelInformacoes = new VLayout();
    painelInformacoes.setHeight(60);
    //painelInformacoes.setWidth(200);
    painelInformacoes.setAlign(Alignment.RIGHT);
    painelInformacoes.addMember(labelDataHora);
    painelInformacoes.addMember(menuButton);

    this.addMember(painelLogoAuto);
    this.addMember(painelLogo);
    this.addMember(painelInformacoes);

}

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

public NovoVeiculo(int codigoCliente, String nomeCliente) {

    final Window windAux = this;
    setTitle("Novo Veculo");
    setWidth(1200);// w w w  . ja v  a 2 s . c  o  m
    setHeight100();
    setShowMinimizeButton(false);
    setIsModal(true);
    setShowModalMask(true);
    centerInPage();
    setLayoutAlign(Alignment.CENTER);
    addCloseClickHandler(new CloseClickHandler() {

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

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

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

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

            }

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

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

    final SelectItem equipamento = new SelectItem();
    equipamento.setTitle("Equipamento");
    equipamento.setName("equipamento");
    Info.dbService.buscarTodosDisponiveis(codigoUnidade,
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    LinkedHashMap<String, String> equip = new LinkedHashMap<>();
                    if (result != null) {
                        equip.put("0", "Sem equipamento");
                        for (TreeMap<String, String> equipDisponiveis : result) {
                            equip.put(equipDisponiveis.get("codEquipamento"), equipDisponiveis.get("id"));
                        }
                        equipamento.setValueMap(equip);
                    } else {
                        equip.put("0", "no h equipamento disponvel para esta unidade");
                        equipamento.setValueMap(equip);
                    }
                }
            });
    equipamento.setDefaultToFirstOption(true);
    equipamento.setHint("<nbr>*</nbr>");
    equipamento.setRequired(true);
    equipamento.setWidth(450);

    final SelectItem instalador = new SelectItem();
    instalador.setTitle("Instalador");
    instalador.setName("instalador");
    Info.dbService.buscarFuncionarioPorCargoUnidade(1, codigoUnidade,
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    LinkedHashMap<String, String> inst = new LinkedHashMap<>();
                    if (result != null) {
                        for (TreeMap<String, String> funcionario : result) {

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

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

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

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

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

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

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

        }
    });

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

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

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

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

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

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

                }

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

    itemEstado.addChangeHandler(new ChangeHandler() {

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

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

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

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

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

                        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    tipoCobranca.addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {

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

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

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

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

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

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

        @Override
        public void onChanged(ChangedEvent event) {

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

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

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

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

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

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

                }
            }
        }

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

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

    addpadLig.addClickHandler(new ClickHandler() {

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

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

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

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

        @Override
        public void onClick(ClickEvent event) {

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

    cadastrar.addClickHandler(new ClickHandler() {

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

                new Timer() {
                    public void run() {

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

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

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

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

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

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

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

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

                    }
                }.schedule(50);

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

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

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

    addItem(painelpagina);

}

From source file:com.automaster.client.ui.paineis.dialogs.editar.cadastronovo.EditarNovaPessoaAutorizada.java

public EditarNovaPessoaAutorizada(final ListGrid listPesAut,
        final ArrayList<TreeMap<String, String>> dadosVeiculoCopia) {

    final Window windowAux = this;
    setTitle("Nova Pessoa Autorizada");
    setWidth(500);//from   w  ww. j  av a  2 s .c  om
    setHeight(400);
    setShowMinimizeButton(false);
    setIsModal(true);
    setShowModalMask(true);
    centerInPage();
    setLayoutAlign(Alignment.CENTER);

    Label label = new Label("<strong><h3>Cadastrar Nova Pessoa Autorizada</h3></strong>");
    label.setAlign(Alignment.CENTER);
    label.setStyleName(scClassName);

    final DynamicForm formNovaPesAut = new DynamicForm();
    formNovaPesAut.setMargin(15);
    formNovaPesAut.setAutoFocus(true);

    final TextItem itemNome = new TextItem();
    itemNome.setTitle("Nome");
    itemNome.setName("nome");
    itemNome.setKeyPressFilter("[a-zA-Z? [0-9]");
    itemNome.setRequired(true);
    itemNome.setCharacterCasing(CharacterCasing.UPPER);
    itemNome.setWidth(300);
    LengthRangeValidator tamanhoNome = new LengthRangeValidator();
    tamanhoNome.setMin(3);
    itemNome.setValidators(tamanhoNome);

    final TextItem itemTelefone = new TextItem();
    itemTelefone.setTitle("Nmero");
    itemTelefone.setName("numero");
    itemTelefone.setRequired(true);
    itemTelefone.setMask("(##)#####-####");
    itemTelefone.setWidth(300);
    LengthRangeValidator tamanhoTelefone = new LengthRangeValidator();
    tamanhoTelefone.setMin(11);
    itemTelefone.setValidators(tamanhoTelefone);

    final TextAreaItem descricao = new TextAreaItem();
    descricao.setTitle("Descrio");
    descricao.setName("descricao");
    descricao.setPrintFullText(false);
    descricao.setWidth(300);
    descricao.setValue("");

    formNovaPesAut.setFields(itemNome, itemTelefone, descricao);

    addCloseClickHandler(new CloseClickHandler() {

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

    HLayout hButoes = new HLayout();
    hButoes.setWidth(200);
    hButoes.setMembersMargin(3);
    hButoes.setLayoutAlign(Alignment.CENTER);
    IButton cadastrar = new IButton("Cadastrar");
    IButton limpar = new IButton("Limpar");
    hButoes.setMargin(5);
    hButoes.addMember(cadastrar);
    hButoes.addMember(limpar);

    cadastrar.addClickHandler(new ClickHandler() {

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

                new Timer() {
                    public void run() {

                        if (contador != 100) {

                            contador += 1 + (int) (5 * Math.random());
                            schedule(1 + (int) (50 * Math.random()));
                            mensagem.setContents("Carregando: " + contador + "%");
                            janelaCarregando.addItem(mensagem);
                            janelaCarregando.setAnimateTime(1200);
                            janelaCarregando.animateShow(AnimationEffect.FADE);

                            if (contador >= 100) {
                                mensagem.setContents("Carregando: 100%");
                                TreeMap<String, String> novoPessoaAutorizada = new TreeMap<String, String>();
                                //GWT.log("Linha 1"+descricao.getValue());
                                novoPessoaAutorizada.put("codVeiculo",
                                        dadosVeiculoCopia.get(0).get("codVeiculo"));
                                novoPessoaAutorizada.put("nomePes", itemNome.getValueAsString());
                                novoPessoaAutorizada.put("telefonePes", itemTelefone.getValueAsString());
                                novoPessoaAutorizada.put("descricaoPes", descricao.getValueAsString());
                                //GWT.log("Linha 2");
                                Info.dbService.cadastrarPessoaAutorizada(novoPessoaAutorizada,
                                        new AsyncCallback<Boolean>() {

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

                                            @Override
                                            public void onSuccess(Boolean novaPessoaAut) {
                                                if (novaPessoaAut == true) {
                                                    Info.dbService.buscarUltimaPessoaAutorizada(
                                                            new AsyncCallback<Integer>() {

                                                                @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(Integer ultimaPessoaAut) {
                                                                    if (ultimaPessoaAut > 0) {

                                                                        TreeMap<String, String> veiculo = new TreeMap<String, String>();
                                                                        //GWT.log("Linha 3");
                                                                        veiculo.put("codInstalador",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codInstalador"));
                                                                        veiculo.put("nomeInstalador",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("nomeInstalador"));
                                                                        veiculo.put("codVeiculoInd", "null");
                                                                        veiculo.put("placaIndicador",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("placaIndicador"));
                                                                        veiculo.put("codParcela",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codParcela"));
                                                                        veiculo.put("valorParcela",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("valorParcela"));
                                                                        veiculo.put("numeroParcela",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("numeroParcela"));
                                                                        veiculo.put("codTc", dadosVeiculoCopia
                                                                                .get(0).get("codTc"));
                                                                        veiculo.put("descricaoTc",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("descricaoTc"));
                                                                        veiculo.put("codVeiculo",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codVeiculo"));
                                                                        veiculo.put("placaVeiculo",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("placaVeiculo"));
                                                                        veiculo.put("chassi", dadosVeiculoCopia
                                                                                .get(0).get("chassi"));
                                                                        veiculo.put("fabricante",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("fabricante"));
                                                                        veiculo.put("modelo", dadosVeiculoCopia
                                                                                .get(0).get("modelo"));
                                                                        veiculo.put("cor", dadosVeiculoCopia
                                                                                .get(0).get("cor"));
                                                                        veiculo.put("ano", dadosVeiculoCopia
                                                                                .get(0).get("ano"));
                                                                        veiculo.put("dataAdesao",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("dataAdesao"));
                                                                        veiculo.put("ativoVeic",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("ativoVeic"));
                                                                        veiculo.put("desconto",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("desconto"));
                                                                        veiculo.put("codEquipamento",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codEquipamento"));
                                                                        veiculo.put("idEquipamento",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("idEquipamento"));
                                                                        veiculo.put("codModeloEquipamento",
                                                                                dadosVeiculoCopia.get(0).get(
                                                                                        "codModeloEquipamento"));
                                                                        veiculo.put("descricaoModelo",
                                                                                dadosVeiculoCopia.get(0).get(
                                                                                        "descricaoModelo"));
                                                                        veiculo.put("fabricanteMod",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("fabricanteMod"));
                                                                        veiculo.put("codPlano",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codPlano"));
                                                                        veiculo.put("descricaoPlano",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("descricaoPlano"));
                                                                        veiculo.put("valorPlano",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("valorPlano"));
                                                                        veiculo.put("codCidade",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codCidade"));
                                                                        veiculo.put("cidadeNome",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("cidadeNome"));
                                                                        veiculo.put("codEstado",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("codEstado"));
                                                                        veiculo.put("estadoNome",
                                                                                dadosVeiculoCopia.get(0)
                                                                                        .get("estadoNome"));
                                                                        veiculo.put("codPad", null);
                                                                        veiculo.put("corFio", null);
                                                                        veiculo.put("padraoLd", null);
                                                                        veiculo.put("sinalPad", null);
                                                                        veiculo.put("funcaoPad", null);
                                                                        veiculo.put("ativoPad", null);
                                                                        //GWT.log("Linha 4");
                                                                        veiculo.put("descricaoPad", null);
                                                                        //GWT.log("Linha 5");
                                                                        veiculo.put("codPes", String
                                                                                .valueOf(ultimaPessoaAut));
                                                                        veiculo.put("nomePes",
                                                                                itemNome.getValueAsString());
                                                                        veiculo.put("telefonePes", itemTelefone
                                                                                .getValueAsString());
                                                                        veiculo.put("descricaoPes",
                                                                                descricao.getValueAsString());
                                                                        //GWT.log("Linha 6");
                                                                        // Adicionando o novo padro de ligao no DadosVeiculosCopia
                                                                        dadosVeiculoCopia.add(veiculo);

                                                                        Record padLigacao = new Record();
                                                                        // GWT.log("Linha 7");
                                                                        padLigacao.setAttribute("codigo", String
                                                                                .valueOf(ultimaPessoaAut));
                                                                        padLigacao.setAttribute("nomePes",
                                                                                ((itemNome == null)
                                                                                        ? "Sem informao"
                                                                                        : itemNome
                                                                                                .getValueAsString()));
                                                                        padLigacao.setAttribute("telefonePes",
                                                                                (itemTelefone == null)
                                                                                        ? "Sem informao"
                                                                                        : itemTelefone
                                                                                                .getValueAsString());
                                                                        padLigacao.setAttribute("descricaoPes",
                                                                                ((descricao == null)
                                                                                        || descricao
                                                                                                .getValueAsString()
                                                                                                .equalsIgnoreCase(
                                                                                                        "") ? "Sem informao"
                                                                                                                : descricao
                                                                                                                        .getValueAsString()));
                                                                        //GWT.log("Linha 8");
                                                                        listPesAut.addData(padLigacao);
                                                                        SC.say("Nova pessoa autorizada adicionada com sucesso!");
                                                                    } else {
                                                                        SC.warn("ERRO ao buscar o ltima pessoa autorizada cadastrada");
                                                                    }
                                                                }
                                                            });
                                                } else {
                                                    SC.warn("ERRO ao inserir nova pessoa autorizada");
                                                }
                                            }
                                        });
                                janelaCarregando.addItem(mensagem);
                                janelaCarregando.setAnimateTime(1200);
                                janelaCarregando.animateHide(AnimationEffect.FADE);
                                contador = 100;
                                janelaCarregando.destroy();
                            }
                        } else {
                            contador = 0;
                        }

                    }
                }.schedule(50);
                windowAux.destroy();
            }
        }
    });
    limpar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            itemNome.clearValue();
            itemTelefone.clearValue();
            descricao.clearValue();
            formNovaPesAut.focusInItem(itemNome);
        }
    });

    addItem(label);
    addItem(formNovaPesAut);
    addItem(hButoes);
}