com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabFrota.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabFrota.java

Source

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

import com.automaster.autoview.client.Info;
import com.automaster.autoview.client.ui.openlayers.MapaFrotaOpenLayer;
import com.automaster.autoview.client.ui.paineis.tabs.TabLog;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.user.client.Timer;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.VisibilityMode;
import com.smartgwt.client.widgets.ImgButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.events.DrawEvent;
import com.smartgwt.client.widgets.events.DrawHandler;
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.tab.Tab;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Map;
import java.util.TreeMap;

/**
 *
 * @author Adriano
 */
public class TabFrota extends Tab {

    //private int contador;
    //private ArrayList<TreeMap<String, String>> arrayListChips = new ArrayList<TreeMap<String, String>>();
    // 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();
    public static Timer atualizaFrota;
    private int i;
    //private String labelIcone = "labels";
    //private int pointA = 40;
    //private int pointB = 80;
    private String icone = "./imagens/ponto_ligado";
    //private final ListGridField excluir = new ListGridField("excluir", "Excluir");
    /*private final ListGrid veiculos = new ListGrid();
     private final ListGrid posicoesVeiculos = new ListGrid();
     private int indexVeiculoPlaca=0;*/
    //private boolean verificaArrived = true;
    private String nomeCliente = "";
    private TreeMap<String, ArrayList<TreeMap<String, String>>> listaVeiculos;
    private ArrayList<TreeMap<String, String>> posicoesVeiculo;
    private MapaFrotaOpenLayer mapaFrotaOpenLayer;

    public TreeMap<String, ArrayList<TreeMap<String, String>>> getListaVeiculos() {
        return listaVeiculos;
    }

    public void setListaVeiculos(TreeMap<String, ArrayList<TreeMap<String, String>>> listaVeiculos) {
        this.listaVeiculos = listaVeiculos;
    }

    public ArrayList<TreeMap<String, String>> getPosicoesVeiculo() {
        return posicoesVeiculo;
    }

    public void setPosicoesVeiculo(ArrayList<TreeMap<String, String>> posicoesVeiculo) {
        this.posicoesVeiculo = posicoesVeiculo;
    }

    public TabFrota() {

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

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

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

            @Override
            public void onDraw(DrawEvent event) {

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

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

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

                }

            }
        });
        mapaSection.setItems(mapaFrotaOpenLayer);

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

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

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

        TabFrota.atualizaFrota = new Timer() {

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

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

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

                }

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

    }

}