Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.automaster.autoview.client.ui.paineis.tabs.monitoramento; import com.automaster.autoview.client.Info; import com.automaster.autoview.client.ui.openlayers.MapaHistoricoOpenLayer; import com.automaster.autoview.client.ui.paineis.tabs.TabLog; import com.google.gwt.core.client.GWT; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; import com.google.gwt.i18n.client.TimeZone; import com.google.gwt.i18n.client.constants.TimeZoneConstants; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.Record; import com.smartgwt.client.data.SortSpecifier; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.AnimationEffect; import com.smartgwt.client.types.DateDisplayFormat; import com.smartgwt.client.types.GroupStartOpen; import com.smartgwt.client.types.Overflow; import com.smartgwt.client.types.SelectionStyle; import com.smartgwt.client.types.SortDirection; import com.smartgwt.client.types.TitleOrientation; import com.smartgwt.client.types.VisibilityMode; import com.smartgwt.client.util.DateUtil; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.IButton; import com.smartgwt.client.widgets.ImgButton; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.events.DrawEvent; import com.smartgwt.client.widgets.events.DrawHandler; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.DateTimeItem; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.grid.events.DataArrivedEvent; import com.smartgwt.client.widgets.grid.events.DataArrivedHandler; import com.smartgwt.client.widgets.grid.events.GroupByCompleteEvent; import com.smartgwt.client.widgets.grid.events.GroupByCompleteHandler; import com.smartgwt.client.widgets.grid.events.GroupStateChangedEvent; import com.smartgwt.client.widgets.grid.events.GroupStateChangedHandler; import com.smartgwt.client.widgets.grid.events.SelectionUpdatedEvent; import com.smartgwt.client.widgets.grid.events.SelectionUpdatedHandler; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.SectionStack; import com.smartgwt.client.widgets.layout.SectionStackSection; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.tab.Tab; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; import java.util.TreeMap; /** * * @author Adriano */ public class TabHistorico extends Tab { // Pega o cdigo da Unidade do Usurio Logado Cliente ou Funiconrio int codigoUnidade = Integer.parseInt( (Info.usuarioLogado.get("codUnidadeCliente") == null) ? Info.usuarioLogado.get("codUnidadeFuncionario") : Info.usuarioLogado.get("codUnidadeCliente")); //private final DynamicForm formBusca = new DynamicForm(); //private final RadioGroupItem tipoBusca = new RadioGroupItem(); //private final TextItem buscaVeiculo = new TextItem(); private int i, verificaTeste = 0; //private final ListGridField excluir = new ListGridField("excluir", "Excluir"); public static ListGrid veiculos; //public static int LIMIT_CONSULTA_ENDERECO_GOOGLE = 0; public static boolean FLAG_CONSULTA_ENDERECO_GOOGLE = true; public static boolean TABELA_VEICULOS_HISTORICO_DESENHADA; private static ListGrid posicoesVeiculos; public static int indexVeiculoPlaca; private int contador = 0; //private ListGridRecord[] registeredPlacaRecords; //private static String endereco = ""; //private static String latitude; private static ArrayList<Record> posicoesSemEndereco; private String icone = null; private int direcaoPosicao = 0; private int indexDistancia = 0; private String kms = null; private double metros = 0; private String m = null; private String dist = " Percorridos 0 metros"; //private static String placaSelecionada = ""; //private static boolean semafaro = true; private double distanciaTotal = 0; private double distancia = 0; private double latAnt = 0, lonAnt = 0, latAtual = 0, lonAtual = 0; private String tempoDecorrido = " 0"; private int tamanhoListaVeiculos = 0; private boolean verificaListaDeVeiculos = true; private final VLayout painelSectionPlacas = new VLayout(); private final Label infoVeiculo = new Label( "<strong style=\"font-size:15px; \">Placa: XXX-1111" + " Fabricante: XXXX" + " Modelo: XXXX" + " Cor: XXXX" + " Ano: 0000/0000" + ".</strong> Percorridos: 0 metros. Tempo : 0."); private final Label labelPosicoesSemEndereco = new Label("<nbr> </nbr>"); public static DataSource dataSoucePlacas; private String nomeCliente = ""; private boolean flagSemEndereco = true; private static boolean flagBuscaEndereco = true; //private String timeZone = "0"; public static TreeMap<String, String> codPlacasHistorico; //private int count = 0; //public static boolean tabelaDesenhada; //private boolean verificaArrived = true; //private static ArrayList<TreeMap<String, String>> vintePosicoes; private MapaHistoricoOpenLayer mapaHistoricoOpenLayer; 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"; } 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); } } } }; } private void buscaEndereco(final String lat, final String lon, final String placa, final Record record) { GWT.log("LINHA 03 HISTRICO"); TreeMap<String, String> posicoesEndereco = new TreeMap<>(); posicoesEndereco.put("lat", lat); posicoesEndereco.put("lon", lon); posicoesEndereco.put("placa", placa); GWT.log("LINHA 04 HISTRICO"); String latLon = lat + "," + lon; Info.enderecoGoogleHistorico(latLon, lat, lon, placa, record); // Info.dbService.resolveEnderecoExterno(latLon, new AsyncCallback<String>() { // @Override // public void onFailure(Throwable caught) { // flagBuscaEndereco = true; // SC.warn("ERRO ao resolver endereo!"); // } // // @Override // public void onSuccess(String resposta) { // // GWT.log("Resposta: "+resposta); // if (resposta != null) { // // int index = TabHistorico.posicoesVeiculos.getRecordIndex(record); // // if (index != -1) { // // Info.enderecosResolvidos.put(lat + ";" + lon, resposta); // // TabHistorico.posicoesVeiculos.getRecord(index).setAttribute("endereco", resposta); // TabHistorico.posicoesVeiculos.markForRedraw(); // TabHistorico.posicoesVeiculos.refreshRecordComponent(index, 13); // // TreeMap<String, String> enderecoPosicao = new TreeMap<>(); // enderecoPosicao.put("placa", placa); // //GWT.log("Placa selecionada HISTORICO 2 "+placa); // enderecoPosicao.put("lat", lat); // enderecoPosicao.put("lon", lon); // enderecoPosicao.put("endereco", resposta); // TabHistorico.posicoesSemEndereco.remove(record); // //TabHistorico.semafaro = true; // // Info.dbService.cadastrarPosicaoEndereco(enderecoPosicao, new AsyncCallback<Integer>() { // // @Override // public void onFailure(Throwable caught) { // flagBuscaEndereco = true; // SC.warn("Falha na conexo - cadastrarPosicaoEnd"); // } // // @Override // public void onSuccess(Integer result) { // flagBuscaEndereco = true; // GWT.log("Histrico ltima posico cadastrada IF : " + result); // } // }); // } else { // // Info.enderecosResolvidos.put(lat + ";" + lon, resposta); // // TreeMap<String, String> enderecoPosicao = new TreeMap<>(); // enderecoPosicao.put("placa", placa); // //GWT.log("Placa selecionada HISTORICO 22 "+placa); // enderecoPosicao.put("lat", lat); // enderecoPosicao.put("lon", lon); // enderecoPosicao.put("endereco", resposta); // TabHistorico.posicoesSemEndereco.remove(record); // //TabHistorico.semafaro = true; // // Info.dbService.cadastrarPosicaoEndereco(enderecoPosicao, new AsyncCallback<Integer>() { // // @Override // public void onFailure(Throwable caught) { // flagBuscaEndereco = true; // SC.warn("Falha na conexo - cadastrarPosicaoEnd2"); // } // // @Override // public void onSuccess(Integer result) { // flagBuscaEndereco = true; // //GWT.log("ltima posico cadastrada ELSE : " + result); // } // }); // } // // } else { // flagBuscaEndereco = true; // } // } // }); } public static void enderecoGoogle(String resposta, String lat, String lon, String placa, Record record) { if (resposta != null) { int index = TabHistorico.posicoesVeiculos.getRecordIndex(record); if (index != -1) { Info.enderecosResolvidos.put(lat + ";" + lon, resposta); TabHistorico.posicoesVeiculos.getRecord(index).setAttribute("endereco", resposta); TabHistorico.posicoesVeiculos.markForRedraw(); TabHistorico.posicoesVeiculos.refreshRecordComponent(index, 13); TreeMap<String, String> enderecoPosicao = new TreeMap<>(); enderecoPosicao.put("placa", placa); //GWT.log("Placa selecionada HISTORICO 2 "+placa); enderecoPosicao.put("lat", lat); enderecoPosicao.put("lon", lon); enderecoPosicao.put("endereco", resposta); TabHistorico.posicoesSemEndereco.remove(record); //TabHistorico.semafaro = true; Info.dbService.cadastrarPosicaoEndereco(enderecoPosicao, new AsyncCallback<Integer>() { @Override public void onFailure(Throwable caught) { SC.warn("Falha na conexo - cadastrarPosicaoEnd"); } @Override public void onSuccess(Integer result) { flagBuscaEndereco = true; GWT.log("Histrico ltima posico cadastrada IF : " + result); } }); } else { Info.enderecosResolvidos.put(lat + ";" + lon, resposta); TreeMap<String, String> enderecoPosicao = new TreeMap<>(); enderecoPosicao.put("placa", placa); //GWT.log("Placa selecionada HISTORICO 22 "+placa); enderecoPosicao.put("lat", lat); enderecoPosicao.put("lon", lon); enderecoPosicao.put("endereco", resposta); TabHistorico.posicoesSemEndereco.remove(record); //TabHistorico.semafaro = true; Info.dbService.cadastrarPosicaoEndereco(enderecoPosicao, new AsyncCallback<Integer>() { @Override public void onFailure(Throwable caught) { flagBuscaEndereco = true; SC.warn("Falha na conexo - cadastrarPosicaoEnd2"); } @Override public void onSuccess(Integer result) { flagBuscaEndereco = true; //GWT.log("ltima posico cadastrada ELSE : " + result); } }); } } else { flagBuscaEndereco = true; } } public void sortPosicoes(ListGridRecord[] list) { ListGridRecord temp; for (int j = 0; j <= list.length - 1; j++) { for (int k = 0; k <= list.length - 2; ++k) { if (list[k].getAttributeAsInt("dataEhoraReal") < list[k + 1].getAttributeAsInt("dataEhoraReal")) { temp = list[k]; list[k] = list[k + 1]; list[k + 1] = temp; } //GWT.log("Linha do mtodo sortPosicoes"); } } latAnt = 0; lonAnt = 0; latAtual = 0; lonAtual = 0; distancia = 0; distanciaTotal = 0; for (int j = 0; j < list.length; j++) { direcaoPosicao = list[j].getAttributeAsInt("codDirecao"); //LatLng latLng = new LatLng(list[j].getAttributeAsDouble("lat"), list[j].getAttributeAsDouble("lon")); //InfoWindow infoWindow = new InfoWindow(); //Info.mapaHistorico.addListenerInfoWindow(infoWindow.value()); icone = "./imagens/ponto_desligado.png"; if (j == 0) { distancia = 0; if (list[j].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"; } String placaPosicao = TabHistorico.veiculos.getSelectedRecord().getAttribute("placa"); String data = list[j].getAttributeAsString("dataEhora"); String velocidade = list[j].getAttributeAsString("vel"); String ignicao = list[j].getAttributeAsString("ignReal").equalsIgnoreCase("false") ? "Desligada" : "Ligada"; double latitudePosicao = list[j].getAttributeAsDouble("lat"); double longitudePosicao = list[j].getAttributeAsDouble("lon"); String enderecoPosicao = (list[j].getAttributeAsString("endereco").equalsIgnoreCase("Sem endereo") ? "No h resoluo de endereo para este local" : list[j].getAttributeAsString("endereco")); nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null) ? "</br><strong>Cliente: </strong>" + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("cliente") + "</strong>" : ""); String direcao = "</br><strong>Direo: </strong> " + list[j].getAttributeAsString("direcao") + nomeCliente; mapaHistoricoOpenLayer.addMarker(longitudePosicao, latitudePosicao, placaPosicao, icone, j, data, velocidade, ignicao, enderecoPosicao, direcao); } else { if (list[j].getAttributeAsString("ignReal").equalsIgnoreCase("false")) { icone = "./imagens/ponto_desligado.png"; } else { icone = "./imagens/ponto_ligado.png"; } String placaPosicao = TabHistorico.veiculos.getSelectedRecord().getAttribute("placa"); String data = list[j].getAttributeAsString("dataEhora"); String velocidade = list[j].getAttributeAsString("vel"); String ignicao = list[j].getAttributeAsString("ignReal").equalsIgnoreCase("false") ? "Desligada" : "Ligada"; double latitudePosicao = list[j].getAttributeAsDouble("lat"); double longitudePosicao = list[j].getAttributeAsDouble("lon"); String enderecoPosicao = (list[j].getAttributeAsString("endereco").equalsIgnoreCase("Sem endereo") ? "No h resoluo de endereo para este local" : list[j].getAttributeAsString("endereco")); nomeCliente = ((Info.usuarioLogado.get("codUnidadeCliente") == null) ? "</br><strong> Cliente: </strong>" + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("cliente") + "</strong>" : ""); String direcao = "</br><strong>Direo: </strong> " + list[j].getAttributeAsString("direcao") + nomeCliente; mapaHistoricoOpenLayer.addMarker(longitudePosicao, latitudePosicao, placaPosicao, icone, j, data, velocidade, ignicao, enderecoPosicao, direcao); latAnt = list[j - 1].getAttributeAsDouble("lat"); lonAnt = list[j - 1].getAttributeAsDouble("lon"); latAtual = list[j].getAttributeAsDouble("lat"); lonAtual = list[j].getAttributeAsDouble("lon"); if (latAnt == latAtual && lonAnt == lonAtual) { distancia = 0; } else { distancia = Info.caculaDistanciaEntreDoisPontos(latAnt, lonAnt, latAtual, lonAtual); } } distanciaTotal = distanciaTotal + distancia; } GWT.log("Data : 1"); mapaHistoricoOpenLayer.addLinha(); GWT.log("Data : 2"); tempoDecorrido = Info.calculaDatas(list[0].getAttributeAsLong("dataEhoraReal"), list[list.length - 1].getAttributeAsLong("dataEhoraReal")); //GWT.log("Data : 2"); if (distanciaTotal > 0) { indexDistancia = String.valueOf(Info.formataDecimal(distanciaTotal)).indexOf("."); kms = String.valueOf(Info.formataDecimal(distanciaTotal)).substring(0, indexDistancia); m = "0" + (String.valueOf(Info.formataDecimal(distanciaTotal)).substring(indexDistancia)); metros = Double.parseDouble(m) * 1000; dist = ((Double.parseDouble(kms) > 0) ? ". Percorridos: " + kms + " KM e " + metros + " metros" : ". Percorridos: " + metros + " metros"); } else { dist = " Percorridos 0 metros"; } infoVeiculo.redraw(); infoVeiculo.setContents("<strong style=\"font-size:15px; \"> " + Info.titulosMsg.get("placa") + ": " + TabHistorico.veiculos.getSelectedRecord().getAttributeAsString("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>" + dist + ". Tempo : " + tempoDecorrido); } }