Erro datatable js

0 respostas
Marcos_Roberto_DJ

Olá pessoal,faz um tempo que eu não apareço por aqui.
Bom o meu problema é o seguinte:
toda vez que eu tento selecionar um item do meu datatable,dá erro,o engraçado é que a tabela é preenchida,mas quando eu tento selecionar o erro acontece.Por favor me ajudem aí please.

o erro:

Advertência: /listainterpolada.xhtml @54,35 value="#{interpolacaoBean.listadecoordenadas}": Error reading listadecoordenadas on type br.com.preditor.bean.InterpolacaoBean

javax.el.ELException: /listainterpolada.xhtml @54,35 value="#{interpolacaoBean.listadecoordenadas}": Error reading listadecoordenadas on type br.com.preditor.bean.InterpolacaoBean

at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)

at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)

at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)

at javax.faces.component.UIData.getValue(UIData.java:731)

at org.primefaces.component.datatable.DataTable.getValue(DataTable.java:740)

at javax.faces.component.UIData.getDataModel(UIData.java:1798)

at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)

at javax.faces.component.UIData.setRowIndex(UIData.java:473)

at javax.faces.component.UIData.iterate(UIData.java:1927)

at javax.faces.component.UIData.processDecodes(UIData.java:1161)

at org.primefaces.component.datatable.DataTable.processDecodes(DataTable.java:531)

at javax.faces.component.UIForm.processDecodes(UIForm.java:225)

at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)

at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)

at org.primefaces.component.layout.Layout.processDecodes(Layout.java:238)

at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)

at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176)

at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933)

at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:322)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)

at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)

at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)

at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:184)

at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:155)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:722)

Caused by: java.lang.NullPointerException

at br.com.preditor.dao.AreaDAO.obterInterpolacaoPormes(AreaDAO.java:135)

at br.com.preditor.dao.AreaDAO.listarInterpolacaomes(AreaDAO.java:219)

at br.com.preditor.rn.InterpolacaoRN.listarcoordmes(InterpolacaoRN.java:27)

at br.com.preditor.bean.InterpolacaoBean.getInterpolacaoMes(InterpolacaoBean.java:372)

at br.com.preditor.bean.InterpolacaoBean.getListadecoordenadas(InterpolacaoBean.java:60)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at javax.el.BeanELResolver.getValue(BeanELResolver.java:87)

at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)

at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)

at org.apache.el.parser.AstValue.getValue(AstValue.java:169)

at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)

at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)

 71 more

Página web:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <script src="http://maps.google.com/maps/api/js?sensor=true"

    type="text/javascript"></script>
    <h:head>
        <title>Preditor Web</title>


    </h:head>
    <h:body>
        <p:layout fullPage="true">
            <p:layoutUnit position="north" size="70">
                <center> <p:graphicImage style="width: 95%" value="/img/final.png" /></center>
            </p:layoutUnit>

            <p:layoutUnit position="west" size="200" collapsible="true">
                <h:form>
                    <p:menu style="width: 98%">
                        <p:submenu label="Coordenadas com temperatura desconhecida" >
                            <p:menuitem value="Voltar ao menu anterior" 
                                        action="/listas/listadearea.xhtml" 
                                        icon="ui-icon ui-extlink" 
                                        ajax="false"/>
                            <p:menuitem value="Voltar a Página inicial" 
                                        action="/publico/index.xhtml" 
                                        icon="ui-icon ui-icon-power" 
                                        ajax="false"/>
                        </p:submenu>

                    </p:menu>

                    <h:outputLink value="#{facesContext.externalContext.requestContextPath}/j_spring_security_logout">
                        <h2> <h:outputText value="Logout"/></h2>
                    </h:outputLink>
                </h:form>
            </p:layoutUnit>
            <p:layoutUnit position="center">
                <h:form >
                    <h:inputHidden value="#{interpolacaoBean.area}"
                                   >
                        <f:converter converterId="conversorArea"/>  
                    </h:inputHidden>
                    <p:dataTable id="tabela" 
                                 var="coordenada" 
                                 value="#{interpolacaoBean.listadecoordenadas}"
                                 selection="#{interpolacaoBean.coordenada}"
                                 selectionMode="single"
                                 rowKey="#{coordenada}"
                                 >
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="id"/>
                            </f:facet>
                            <h:outputText value="#{coordenada.id}" />
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Latitude"/>
                            </f:facet>
                            <h:outputText value="#{coordenada.latitude}" />
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Longitude"/>
                            </f:facet>
                            <h:outputText value="#{coordenada.longitude}" />
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <h:outputText value="Marcar"/>
                            </f:facet>
                            <p:commandLink
                                value="Marcar"
                                action="#{interpolacaoBean.marcar}"
                                ajax="false">
                            </p:commandLink>
                        </p:column>

                    </p:dataTable>
                    <!--                    <h2><h:outputText value="Total: " /></h2>-->
                </h:form>
            </p:layoutUnit>
            <p:layoutUnit position="east" size="800">
                <p:growl 
                    id="messages" 
                    showDetail="true"
                    /> 

                <p:gmap id="gmap" 
                        center="#{interpolacaoBean.centro}"  
                        disableDoubleClickZoom="true"
                        zoom="7" 
                        type="HYBRID" 
                        disableDefaultUI="true"
                        style="width:800px;height:600px"
                        model="#{interpolacaoBean.emptyModel}" 
                        widgetVar="map"
                        draggable="false" 

                        />

            </p:layoutUnit>
        </p:layout>
    </h:body>
</html>

meu Bean:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.preditor.bean;

import br.com.preditor.entidades.Area;
import br.com.preditor.entidades.Coordenada;
import br.com.preditor.entidades.Informacao;
import br.com.preditor.rn.AreaRN;
import br.com.preditor.rn.CoordenadaRN;
import br.com.preditor.rn.InterpolacaoRN;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.primefaces.model.map.*;

/**
 *
 * @author marcos
 */
@ManagedBean
public class InterpolacaoBean {

    private double p1;
    private double c1;
    private double c2;
    private double p2;
    private double p3;
    private double p4;
    private int idcoord;
    private int mes;
    private int ano;
    private int mesinicio;
    private int mesfim;
    private int anoinicio;
    private int anofim;
    private int total;
    private String escrevermes;
    private Area area = new Area();
    private String centro;
    private MapModel emptyModel = new DefaultMapModel();
    private List<Coordenada> interpolacaoMes;
    private List<Coordenada> interpolacaoAno;
    private List<Coordenada> listapormes;
    private ArrayList<Informacao> informacoes = new ArrayList<Informacao>();
    private ArrayList<Coordenada> coordenadas = new ArrayList<Coordenada>();
    private final InterpolacaoRN intRN = new InterpolacaoRN();
    private AreaRN areaRN = new AreaRN();
    private DecimalFormat formatador = new DecimalFormat("#####,###");
    private Coordenada coordenada = new Coordenada();
    private CoordenadaRN coordenadaRN = new CoordenadaRN();
    private DataModel listacoordenada;

    public DataModel getListadecoordenadas() {
        if (!getInterpolacaoMes().isEmpty()) {
            List<Coordenada> lista = getInterpolacaoMes();
            listacoordenada = new ListDataModel(lista);
        }

        return listacoordenada;
    }

    public DataModel getListacoordenada() {
        return listacoordenada;
    }

    public void setListacoordenada(DataModel listacoordenada) {
        this.listacoordenada = listacoordenada;
    }
    
    

    public String getCentro() {
        Coordenada pontoCentral = areaRN.pontoCentral(area);
        double lat = pontoCentral.getLatitude().doubleValue();
        double lng = pontoCentral.getLongitude().doubleValue();
        formatador.format(lat);
        formatador.format(lng);
        String center = String.valueOf(lat) + "," + String.valueOf(lng);
        System.out.println(center);
        return center;
    }

    public int getTotal() {
        if (!interpolacaoMes.isEmpty()) {
            total = interpolacaoMes.size();
        } else if (!interpolacaoAno.isEmpty()) {
            total = interpolacaoAno.size();
        }
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public String getEscrevermes() {

        if (mes == 1) {
            escrevermes = "janeiro";
        } else if (mes == 2) {
            escrevermes = "fevereiro";
        } else if (mes == 3) {
            escrevermes = "março";
        } else if (mes == 4) {
            escrevermes = "abril";
        } else if (mes == 5) {
            escrevermes = "maio";
        } else if (mes == 6) {
            escrevermes = "junho";
        } else if (mes == 7) {
            escrevermes = "julho";
        } else if (mes == 8) {
            escrevermes = "agosto";
        } else if (mes == 9) {
            escrevermes = "setembro";
        } else if (mes == 10) {
            escrevermes = "outubro";
        } else if (mes == 11) {
            escrevermes = "novembro";
        } else if (mes == 12) {
            escrevermes = "dezembro";
        }
        return escrevermes;
    }

    public void setEscrevermes(String escrevermes) {
        this.escrevermes = escrevermes;
    }

    public ArrayList<Informacao> getInformacoes() {
        return informacoes;
    }

    public void setInformacoes(ArrayList<Informacao> informacoes) {
        this.informacoes = informacoes;
    }

    public ArrayList<Coordenada> getCoordenadas() {
        if (getInterpolacaoMes() != null) {
            for (Coordenada c : getInterpolacaoMes()) {
                coordenadas.add(c);
            }

        }
        return coordenadas;
    }

    public void setCoordenadas(ArrayList<Coordenada> coordenadas) {
        this.coordenadas = coordenadas;
    }

    public void setCentro(String centro) {
        this.centro = centro;
    }

    public MapModel getEmptyModel() {
        return emptyModel;
    }

    public void setEmptyModel(MapModel emptyModel) {
        this.emptyModel = emptyModel;
    }

    public int getAno() {
        return ano;
    }

    public void setAno(int ano) {
        this.ano = ano;
    }

    public int getAnofim() {
        return anofim;
    }

    public void setAnofim(int anofim) {
        this.anofim = anofim;
    }

    public int getAnoinicio() {
        return anoinicio;
    }

    public void setAnoinicio(int anoinicio) {
        this.anoinicio = anoinicio;
    }

    public Area getArea() {
        return area;
    }

    public void setArea(Area area) {
        this.area = area;
    }

    public int getMes() {
        return mes;
    }

    public void setMes(int mes) {
        this.mes = mes;
    }

    public int getMesfim() {
        return mesfim;
    }

    public void setMesfim(int mesfim) {
        this.mesfim = mesfim;
    }

    public int getMesinicio() {
        return mesinicio;
    }

    public void setMesinicio(int mesinicio) {
        this.mesinicio = mesinicio;
    }

    public int getIdcoord() {
        return idcoord;
    }

    public void setIdcoord(int idcoord) {
        this.idcoord = idcoord;
    }

    public String iniciaInterpolacao() {


        if (area == null) {
            area = new Area();
            AreaRN arn = new AreaRN();
            Coordenada noroeste = new Coordenada();
            Coordenada sudeste = new Coordenada();
            noroeste.setLatitude(BigDecimal.valueOf(p1));
            noroeste.setLongitude(BigDecimal.valueOf(p2));
            sudeste.setLatitude(BigDecimal.valueOf(p3));
            sudeste.setLongitude(BigDecimal.valueOf(p4));
            noroeste = arn.obterCoordenaMaisProxima(noroeste);
            sudeste = arn.obterCoordenaMaisProxima(sudeste);
            area.setNoroeste(noroeste);
            area.setSudeste(sudeste);
            // area = arn.obterPorCoordenada(noroeste, sudeste);
            arn.salvar(area);
            area = arn.obterUltimo();
        }
        desenhar();
        return "/formInterpolacao.xhtml";
    }

    public void interpolar() {
        if (!getInterpolacaoMes().isEmpty()) {           // InterpolacaoRN inrn = new InterpolacaoRN();
            System.out.println("okokokok");
            for (Coordenada coordenada : getInterpolacaoMes()) {
//                boolean teste = areaRN.testedeTerrames(coordenada, mes);
//                if (teste != false) {
                LatLng coord = new LatLng(coordenada.getLatitude().doubleValue(),
                        coordenada.getLongitude().doubleValue());
                Marker c1 = new Marker(coord, "nuvem");
                c1.setFlat(true);
                //ICON X
                c1.setIcon("http://nhw.pl/images/cross.png");
                //ICON DE NUVEM
                //c1.setIcon("http://qal.lylatcentral.com/images/buttons/socialnetworking/large-weather-icons/hot/png/16x16/Blizzard.png");
                emptyModel.addOverlay(c1);
            }
        }


        if (!getInterpolacaoAno().isEmpty()) {
            for (Coordenada coordenada : getInterpolacaoAno()) {
                boolean teste = areaRN.testedeTerraano(coordenada, ano);
                if (teste != false) {
                    LatLng coord = new LatLng(coordenada.getLatitude().doubleValue(),
                            coordenada.getLongitude().doubleValue());
                    Marker c1 = new Marker(coord, "nuvem");
                    c1.setFlat(true);
                    //ICON X
                    c1.setIcon("http://nhw.pl/images/cross.png");
                    //ICON DE NUVEM
                    //c1.setIcon("http://qal.lylatcentral.com/images/buttons/socialnetworking/large-weather-icons/hot/png/16x16/Blizzard.png");
                    emptyModel.addOverlay(c1);

                }
            }
        }
    }

    public void desenhar() {

        LatLng coord1 = new LatLng(p1, p2);
        LatLng coord2 = new LatLng(p3, p4);

//        //Basic marker
//        emptyModel = new DefaultMapModel();
        emptyModel.addOverlay(new Marker(coord1, "" + p1 + ", " + p2));
        emptyModel.addOverlay(new Marker(coord2, "" + p3 + ", " + p4));
        LatLngBounds ll = new LatLngBounds(coord1, coord2);
        Rectangle r = new Rectangle(ll);
        r.setStrokeColor("#d93c3c");
        r.setFillColor("#d93c3c");
        r.setFillOpacity(0.5);
        emptyModel.addOverlay(r);


//        LatLng coord1 = new LatLng(area.getNoroeste().getLatitude().doubleValue(),
//                area.getNoroeste().getLongitude().doubleValue());
//        LatLng coord2 = new LatLng(area.getSudeste().getLatitude().doubleValue(),
//                area.getSudeste().getLongitude().doubleValue());
//        emptyModel.addOverlay(new Marker(coord1, "" + area.getNoroeste().getLatitude().doubleValue() + ", "
//                + area.getNoroeste().getLongitude().doubleValue()));
//        emptyModel.addOverlay(new Marker(coord2, "" + area.getSudeste().getLatitude().doubleValue() + ", "
//                + area.getSudeste().getLongitude().doubleValue()));
//        LatLngBounds ll = new LatLngBounds(coord1, coord2);
//        Rectangle r = new Rectangle(ll);
//        r.setStrokeColor("#d93c3c");
//        r.setFillColor("#d93c3c");
//        r.setFillOpacity(0.5);
//        emptyModel.addOverlay(r);


    }

    public void listarInterpolacaomes() {
    }

    public void listarInterpolacaoano() {
        if (!getInterpolacaoAno().isEmpty()) {
            for (Coordenada coordenada : getInterpolacaoAno()) {
                for (Informacao i : coordenada.getInformacaoList()) {
                    if (i.getAno() == ano) {
                        boolean terra = areaRN.testedeTerraano(coordenada, mes);
                        if (terra == true && i.getTemperatura().doubleValue() > 60000) {
                            informacoes.add(i);
                            break;
                        }
                    }
                }
            }
        }
    }

    public String listarInterpolacao() {
//        String temp = null;
//        if (!getListapormes().isEmpty()) {
//            temp = "/listainterpolada.xhtml";
//        } else if (!getInterpolacaoAno().isEmpty()) {
//            listarInterpolacaoano();
//            temp = "/listainterpoladaano.xhtml";
//        }
        return "/listainterpolada.xhtml";
    }

    public void marcar() {
        LatLng coord1 = new LatLng(coordenada.getLatitude().doubleValue(), coordenada.getLongitude().doubleValue());
        emptyModel.addOverlay(new Marker(coord1, "" + coordenada.getLatitude().doubleValue() + ", " + coordenada.getLongitude().doubleValue()));
//        Marker marker;
//        for (int i = 0; i < interpolacaoMes.size(); i = i ++) {
//            coord = interpolacaoMes.get(i);
//            marker = new Marker(new LatLng(coord.getLatitude().doubleValue(),coord.getLongitude().doubleValue()), "");
//            marker.setFlat(true);
//            emptyModel.addOverlay(marker);
    }

    public List<Coordenada> getInterpolacaoAno() {
        interpolacaoAno = intRN.interpolacaoAno(area, ano);
        return interpolacaoAno;
    }

    public void setInterpolacaoAno(List<Coordenada> interpolacaoAno) {
        this.interpolacaoAno = interpolacaoAno;
    }

    public List<Coordenada> getInterpolacaoMes() {
        interpolacaoMes = intRN.listarcoordmes(area, mes);
        return interpolacaoMes;
    }

    public void setInterpolacaoMes(List<Coordenada> interpolacaoMes) {
        this.interpolacaoMes = interpolacaoMes;
    }

    public List<Coordenada> getListapormes() {
        listapormes = intRN.interpolacaoMes(area, mes);
        return listapormes;
    }

    public void setListapormes(List<Coordenada> listapormes) {
        this.listapormes = listapormes;
    }

    public double getP1() {
        return p1;
    }

    public void setP1(double p1) {
        this.p1 = p1;
    }

    public double getP2() {
        return p2;
    }

    public void setP2(double p2) {
        this.p2 = p2;
    }

    public double getP3() {
        return p3;
    }

    public void setP3(double p3) {
        this.p3 = p3;
    }

    public double getP4() {
        return p4;
    }

    public void setP4(double p4) {
        this.p4 = p4;
    }

    public Coordenada getCoordenada() {
        return coordenada;
    }

    public void setCoordenada(Coordenada coordenada) {
        this.coordenada = coordenada;
    }

    public double getC1() {
        return c1;
    }

    public void setC1(double c1) {
        this.c1 = c1;
    }

    public double getC2() {
        return c2;
    }

    public void setC2(double c2) {
        this.c2 = c2;
    }
}

meu RN:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.preditor.rn;

import br.com.preditor.dao.AreaDAO;
import br.com.preditor.dao.GenericDAO;
import br.com.preditor.entidades.Area;
import br.com.preditor.entidades.Coordenada;
import java.util.List;

/**
 *
 * @author fabio
 */
public class InterpolacaoRN extends GenericDAO<Coordenada> {

    private final AreaDAO dao = new AreaDAO();

    public List<Coordenada> interpolacaoMes(Area area, int mes) {
        return dao.obterInterpolacaoPormes(area.getNoroeste(), area.getSudeste(), mes);
        
    }
    public List<Coordenada> listarcoordmes(Area area, int mes) {
        //return new AreaDAO().obterInterpolacaoPormes(area.getNoroeste(), area.getSudeste(), mes);
        return dao.listarInterpolacaomes(area.getNoroeste(), area.getSudeste(), mes);
        
    }
    
    public List<Coordenada> interpolacaoAno(Area area, int ano) {
        return dao.obterInterpolacaoPorAno(area.getNoroeste(), area.getSudeste(), ano);
        
    }
    
    
}

meu DAO

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.preditor.dao;

import br.com.preditor.entidades.*;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;

/**
 *
 * @author fabio
 */
public class AreaDAO extends GenericDAO<Area> {

    public Area obter(Coordenada noroeste, Coordenada sudeste) {
        String query = " SELECT a FROM Area a "
                + " WHERE a.noroeste = :noroeste and a.sudeste = :sudeste";
        final Query q = getEntityManager().
                createQuery(query).
                setParameter("noroeste", noroeste).
                setParameter("sudeste", sudeste);
        try {
            return (Area) q.getSingleResult();
        } catch (Exception e) {
            return null;
        }
    }

    public List<Area> obterMediaHistorica(Coordenada noroeste,
            Coordenada sudeste,
            Integer mes) {
        String query = " SELECT a FROM Area a "
                + " join a.informacaoAreaList il"
                + " WHERE il.mes = :mes and"
                + " a.noroeste = :noroeste and "
                + " a.sudeste = :sudeste ";
        final Query q = getEntityManager().
                createQuery(query).
                setParameter("mes", mes).
                setParameter("noroeste", noroeste).
                setParameter("sudeste", sudeste);

        try {
            return (List<Area>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public List<Area> obterMediaHistoricaAno(Coordenada noroeste,
            Coordenada sudeste,
            Integer ano) {
        String query = " SELECT a FROM Area a "
                + " join a.informacaoAreaList il"
                + " WHERE il.ano = :ano and"
                + " a.noroeste = :noroeste and "
                + " a.sudeste = :sudeste ";
        final Query q = getEntityManager().
                createQuery(query).
                setParameter("ano", ano).
                setParameter("noroeste", noroeste).
                setParameter("sudeste", sudeste);

        try {
            return (List<Area>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public List<Area> obterArea() {
        String query = "Area.findAll";
        final Query q = getEntityManager().createNamedQuery(query);
        try {
            return (List<Area>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public List<InformacaoArea> obterAreas() {
        String query = "InformacaoArea.findAll";
        final Query q = getEntityManager().createNamedQuery(query);
        try {
            return (List<InformacaoArea>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public List<MediaHistoricaArea> obterMediaareas() {
        String query = "MediaHistoricaArea.findAll";
        final Query q = getEntityManager().createNamedQuery(query);
        try {
            return (List<MediaHistoricaArea>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public List<Coordenada> obterInterpolacaoPorAno(Coordenada noroeste,
            Coordenada sudeste,
            Integer ano) {
        String query = " SELECT distinct c FROM Coordenada c "
                + " join c.informacaoList il"
                + " WHERE il.ano = :ano and il.temperatura > 60000 and"
                + " c.latitude between :latSudeste and :latNoroeste and "
                + " c.longitude between :longNoroeste and :longSudeste ";
        final Query q = getEntityManager().
                createQuery(query).
                //setParameter("mes", mes).
                setParameter("ano", ano).
                setParameter("latNoroeste", noroeste.getLatitude()).
                setParameter("latSudeste", sudeste.getLatitude()).
                setParameter("longNoroeste", noroeste.getLongitude()).
                setParameter("longSudeste", sudeste.getLongitude());
        try {
            return (List<Coordenada>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public List<Coordenada> obterInterpolacaoPormes(Coordenada noroeste,
            Coordenada sudeste,
            Integer mes) {
        String query = " SELECT c FROM Coordenada c "
                + " join c.informacaoList il"
                + " WHERE il.mes = :mes and il.temperatura > 60000 and"
                + " c.latitude between :latSudeste and :latNoroeste and "
                + " c.longitude between :longNoroeste and :longSudeste ";
        final Query q = getEntityManager().
                createQuery(query).
                setParameter("mes", mes).
                //                setParameter("ano", ano).
                setParameter("latNoroeste", noroeste.getLatitude()).
                setParameter("latSudeste", sudeste.getLatitude()).
                setParameter("longNoroeste", noroeste.getLongitude()).
                setParameter("longSudeste", sudeste.getLongitude());
        try {
            return (List<Coordenada>) q.getResultList();
        } catch (Exception e) {
            return null;
        }
    }

    public int obterUltimaArea() {
        String query = " SELECT max(a.id) FROM Area a ";
        final Query q = getEntityManager().
                createQuery(query);
        try {
            return (Integer) q.getSingleResult();
        } catch (Exception e) {
            System.out.println("Deu Erro: " + e.getMessage());
            return 0;
        }
    }

    public boolean verificarTerrames(Coordenada c, Integer mes) {
        int iterador = 0;
        CoordenadaDAO coordenadaDAO = new CoordenadaDAO();
        List<Coordenada> coordenadas = coordenadaDAO.obter(c, mes);
        for (Coordenada c1 : coordenadas) {
            for (Informacao inforomacao : c1.getInformacaoList()) {
                if (inforomacao.getMes() == mes) {
                    iterador++;
                    break;
                }
            }

        }
        if (iterador >= 9) {
            System.out.println("Você está em terra");
            return false;
        } else {
            System.out.println("Você está no mar");
            return true;
        }

    }

    public boolean verificarTerraano(Coordenada c, Integer ano) {
        int iterador = 0;
        CoordenadaDAO coordenadaDAO = new CoordenadaDAO();
        List<Coordenada> coordenadas = coordenadaDAO.obterano(c, ano);
        for (Coordenada c1 : coordenadas) {
            for (Informacao inforomacao : c1.getInformacaoList()) {
                if (inforomacao.getAno() == ano) {
                    iterador++;
                    break;
                }
            }

        }
        if (ano == 2002 && iterador == 6) {
            System.out.println("Você está em terra");
            return false;
        } else if (ano == 2012 && iterador == 3) {
            System.out.println("Você está em terra");
            return false;
        } else if (ano != 2002 && ano != 2012 && iterador >= 12) {
            System.out.println("você está em terra");
            return false;
        } else {
            System.out.println("você está no mar");
            return true;
        }

    }

    public ArrayList<Coordenada> listarInterpolacaomes(Coordenada noroeste,
            Coordenada sudeste,
            Integer mes) {
        ArrayList<Coordenada> resposta = new ArrayList<Coordenada>();
        List<Informacao> in = null;
        List<Coordenada> coord = obterInterpolacaoPormes(noroeste, sudeste, mes);
        for (Coordenada c : coord) {
            for (Informacao i : c.getInformacaoList()) {
                if (i.getMes() == mes) {
                    boolean terra = verificarTerrames(c, mes);
                    if (terra == true && i.getTemperatura().doubleValue() > 60000) {
                        resposta.add(i.getCoordenada());
                        break;
                    }
                }

            }

        }
        return resposta;
    }

    public static void main(String[] args) {
        System.out.println(new AreaDAO().obterUltimaArea());

    }
}
Criado 22 de julho de 2012
Respostas 0
Participantes 1