Example usage for com.google.gwt.user.client Window alert

List of usage examples for com.google.gwt.user.client Window alert

Introduction

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

Prototype

public static void alert(String msg) 

Source Link

Usage

From source file:com.ariesmcrae.rel.client.view.RelationshipViewImpl.java

License:Open Source License

@UiHandler("listboxServer")
void onChangeListboxServer(ChangeEvent event) {
    initDiffTable();/*from  w ww.  j  a v  a  2  s.  c  om*/

    String selectedServerText = listboxServer.getItemText(listboxServer.getSelectedIndex());

    if (!"DEV".equals(selectedServerText)) {
        Window.alert("Not yet implemented");
    }

    //TODO re-populate multiBoxNameSpace

}

From source file:com.arondor.common.reflection.gwt.client.presenter.ReflectionDesignerPresenter.java

License:Apache License

public void bind() {

    menuDisplay.getSaveButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {

        }/*www . ja  va2 s. c o m*/
    });

    menuDisplay.getLoadConfigButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            String context = menuDisplay.getLoadConfigContext();
            readObjectConfiguration(context);
        }
    });

    menuDisplay.getLoadLibsButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            String context = menuDisplay.getLoadLibsContext();
            List<String> packagePrefixes = new ArrayList<String>();
            packagePrefixes.add("com.arondor");

            SERVICE.loadLib(context, packagePrefixes, new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    Window.alert("Could not parse" + caught);
                }

                public void onSuccess(Void result) {
                }
            });

        }
    });

}

From source file:com.arondor.common.reflection.gwt.client.presenter.ReflectionDesignerPresenter.java

License:Apache License

protected void readObjectConfiguration(final String context) {
    // final String context =
    // "file:///home/caroline/ARender-Rendition-2.2.2-rc0/conf/arender-rendition.xml";
    SERVICE.getObjectConfigurationMap(context, new AsyncCallback<ObjectConfigurationMap>() {
        public void onSuccess(ObjectConfigurationMap result) {
            objectConfigurationMapPresenter.setObjectConfigurationMap(result);
        }//from w  ww  .j a va2 s  .  co m

        public void onFailure(Throwable caught) {
            Window.alert("Error ! context:" + context);
        }
    });
}

From source file:com.arondor.common.reflection.sample.gwt.client.SampleEntryPoint.java

License:Apache License

public void onModuleLoad() {
    ConfigurationServiceAsync configurationService = GWT.create(ConfigurationService.class);

    configurationService.getObjectConfigurations(new AsyncCallback<ObjectConfigurationMap>() {

        public void onSuccess(ObjectConfigurationMap result) {
            useObjectConfigurationMap(result);
        }//  www  . j  a  v a2  s .co  m

        public void onFailure(Throwable caught) {
            Window.alert("Error : " + caught.getMessage());
        }
    });
}

From source file:com.audata.client.AuDoc.java

License:Open Source License

/**
 * Switches the main section to the specified
 * content type//  w  w  w .  ja  v  a  2s. co m
 * @param section An integer used to determine the section type to use. Use AuDoc.SECTION_* to specify section
 */
public void switchMain(int section) {
    Widget p = null;
    try {
        this.main.clear();
    } catch (Exception e) {
        Window.alert(e.getMessage());
    }
    switch (section) {
    case (AuDoc.SECTION_ADMIN):
        p = new AdminPanel();
        break;
    case (AuDoc.SECTION_HOME):
        p = new HomePanel();
        break;
    case (AuDoc.SECTION_NEW):
        //p = new RecordPanel("a");
        p = new NewRecord();
        break;
    case (AuDoc.SECTION_REPORT):
        p = new ReportPanel();
        break;
    case (AuDoc.SECTION_SEARCH):
        p = new SearchPanel(this);
        break;
    default:
        p = new HomePanel();
        break;
    }
    //p.setVisible(false);
    p.setVisible(true);
    this.main.add(p);
    //Effect.appear(p);
    if (section == AuDoc.SECTION_RAPID) {
        RapidBookingDialog rbd = new RapidBookingDialog();
        rbd.show();
    }
}

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  www  .  j  a v  a2  s . c  om*/
     } 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;/*from w w  w  .ja  va2s  . c om*/
    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.TabInicio.java

public static void enderecoGoogle(final String resposta, String lat, String lon, String placa, Record record) {

    GWT.log("ENDEREO GOOGLE: " + resposta);

    if (resposta != null) {

        if (Info.validaConexao()) {

            int index = TabInicio.posicoesVeiculos.getRecordIndex(record);
            if (index != -1) {
                TabInicio.posicoesSemEndereco.remove(record);
                Info.enderecosResolvidos.put(lat + ";" + lon, resposta);

                if (TabInicio.posicoesVeiculos.getRecord(index).getAttributeAsDouble("lat") == Double
                        .parseDouble(lat)
                        && TabInicio.posicoesVeiculos.getRecord(index).getAttributeAsDouble("lon") == Double
                                .parseDouble(lon)) {
                    TabInicio.posicoesVeiculos.getRecord(index).setAttribute("endereco", resposta);
                    TabInicio.posicoesVeiculos.markForRedraw();
                    TabInicio.posicoesVeiculos.refreshRecordComponent(index, 13);
                    //GWT.log("LINHA 10 TabInicio.FLAG_CONSULTA_ENDERECO_GOOGLE");
                }//from  w w w.  j a  v a2 s .  c  o  m
                TreeMap<String, String> enderecoPosicao = new TreeMap<>();
                enderecoPosicao.put("placa", placa);
                //GWT.log("Placa selecionada INICIO 2 "+placa);
                enderecoPosicao.put("lat", lat);
                enderecoPosicao.put("lon", lon);
                enderecoPosicao.put("endereco", resposta);
                ArrayList<TreeMap<String, String>> posicaoPlacaAux = (ArrayList<TreeMap<String, String>>) TabInicio
                        .getListaVeiculos().get(placa);

                for (int i = 0; i < posicaoPlacaAux.size(); i++) {
                    if (Double.parseDouble(posicaoPlacaAux.get(i).get("lat")) == Double.parseDouble(lat)
                            && Double.parseDouble(posicaoPlacaAux.get(i).get("lon")) == Double
                                    .parseDouble(lon)) {
                        TreeMap<String, String> pAux = posicaoPlacaAux.get(i);
                        pAux.put("endereco", resposta);
                        posicaoPlacaAux.set(i, pAux);
                        GWT.log("Endereco alterado: lat: " + lat + " lon" + lon + " pAux: " + resposta);
                    }
                }
                TabInicio.setListaVeiculos(placa, posicaoPlacaAux);

                Info.dbService.cadastrarPosicaoEndereco(enderecoPosicao, new AsyncCallback<Integer>() {

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

                    @Override
                    public void onSuccess(Integer result) {
                        //TabInicio.semafaro = true;
                        flagBuscaEndereco = true;
                        GWT.log("ltima posico cadastrada: " + result);
                    }
                });

            } else {
                TabInicio.posicoesSemEndereco.remove(record);
                Info.enderecosResolvidos.put(lat + ";" + lon, resposta);
                TreeMap<String, String> enderecoPosicao = new TreeMap<>();
                enderecoPosicao.put("placa", placa);
                enderecoPosicao.put("lat", lat);
                enderecoPosicao.put("lon", lon);
                enderecoPosicao.put("endereco", resposta);
                GWT.log("enderecoPosicao 22: lat: " + lat + " long: " + lon + " end: " + enderecoPosicao);
                Info.dbService.cadastrarPosicaoEndereco(enderecoPosicao, new AsyncCallback<Integer>() {

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

                    @Override
                    public void onSuccess(Integer result) {
                        flagBuscaEndereco = true;
                        GWT.log("ltima posico cadastrada 2: " + result);
                    }
                });
                //TabInicio.FLAG_CONSULTA_ENDERECO_GOOGLE = true;
            }
        } else {
            SC.warn("Voc est Offline");
        }

    } else {
        flagBuscaEndereco = true;
        GWT.log("Sem endereo no meu BD");
    }

}

From source file:com.axlight.gbrain.client.MainPane.java

License:Apache License

private void showAlertDialog(String message) {
    if (GBrain.isIPhone) {
        Window.alert(message);
    } else {/*ww  w  .  ja v a 2s  .c om*/
        final DialogBox dialog = new DialogBox();
        dialog.setModal(true);
        dialog.setGlassEnabled(true);
        dialog.setText("Alert");
        Label label = new Label(message);
        Button close = new Button("Close");
        VerticalPanel basePanel = new VerticalPanel();
        basePanel.setSpacing(10);
        basePanel.add(label);
        basePanel.add(close);
        dialog.add(basePanel);
        close.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                dialog.hide();
            }
        });
        dialog.center();
        close.setFocus(true);
    }
}

From source file:com.bayesian.network.client.factory.BayesianFactory.java

License:Apache License

public void init(final String xml03File) {
    bayesianService.call(new RemoteCallback<BayesNetwork>() {
        @Override// w ww .  j av  a 2  s  .  c o  m
        public void callback(final BayesNetwork response) {
            bayesianNodes.clear();
            for (BayesVariable bay : response.getNodos()) {
                drawBayesianNode(bay);
            }
            readyEvent.fire(new RenderBayesianNetworkEvent(bayesianNodes));

        }
    }, new ErrorCallback<Object>() {

        @Override
        public boolean error(Object message, Throwable throwable) {
            Window.alert("Sorry.. the " + xml03File + " could not be read..");
            ProgressBar.setInfinite(false);
            return false;
        }
    }).buildXml03(BayesianUtils.XML3_RESOURCE_PATH + xml03File);
}