图表行,一行但两个字幕?

时间:2015-10-24 18:24:22

标签: primefaces

chart

“Nível”和“Nivel”。 我只想要一个传奇。但我有两个被生成。到底是怎么回事?谁解决了这个问题? 另一个问题,我已经在这篇文章中详细介绍了我需要发布的更多细节...... XHTML:

<!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:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:namespace="http://java.sun.com/jsf/composite/namespace"
    xmlns:sec="http://www.springframework.org/security/facelets/tags">

<ui:composition template="Template.xhtml">
    <ui:define name="content">
        <div class="content_wrapper">
            <div class="content">
                <h:form id="formtest">
                <p:growl id="meuGrowl" />
                <p:poll interval="5" listener="#{PortaBean.verificarplaca}"
                    update="meuGrowl" />
            </h:form>

            <h:form id="formtest1">
                <p:growl id="meuGrowl1" />
                <p:poll interval="60" listener="#{PortaBean.Grafico}"
                    update="meuGrowl1" />
            </h:form>
            <h:form id="formtest2">
                <p:growl id="meuGrowl2" />
                <p:poll interval="5" listener="#{PortaBean.verificarPorta}"
                    update="meuGrowl2" />
            </h:form>
                <h:form id="formGrid">
                    <p:selectOneMenu value="#{chartView.reservatorio.idReservatorio}"
                        style="width:170px" required="true"
                        requiredMessage="Selecione algum.">
                        <f:selectItem itemLabel="Selecione o Reservatório" itemValue="0" />
                        <f:selectItems value="#{chartView.listaReservatorio}"
                            var="reservatorio" itemLabel="#{reservatorio.nomeReservatorio}"
                            itemValue="#{reservatorio.idReservatorio}" />
                    </p:selectOneMenu>
                    <p:calendar id="popup" value="#{chartView.data}" />
                    <p:commandButton value="Gerar gráfico" update="chart"
                        actionListener="#{chartView.LinearModel}" />



                    <p:chart id="chart" type="line" model="#{chartView.lineModel1}"
                        style="height:300px;" />




                </h:form>
            </div>
        </div>
    </ui:define>
</ui:composition>
</html>

豆:

@ManagedBean
public class ChartView implements Serializable {

    private Grafico grafico = new Grafico();
    private GraficoCrudAnnotations graficoDAO = new GraficoCrudAnnotations();
    private List<Grafico> listaGrafico = new ArrayList<>();
    private List<Grafico> listaGraficoFinal = new ArrayList<>();
    private Reservatorio reservatorio = new Reservatorio();
    private Reservatorio reservatorio1 = new Reservatorio();
    private List<Reservatorio> listaReservatorio = new ArrayList<>();
    private ReservatorioCrudAnnotations reservatorioDAO = new ReservatorioCrudAnnotations();
    private Date data;
    private LineChartModel lineModel1;
    private GraficoBean Gb = new GraficoBean();

    @PostConstruct
    public void init() {


        LinearModel();

    }

    public LineChartModel getLineModel1() {
        return lineModel1;
    }


    private List<Grafico> Grafico = new ArrayList<>();

    public List<Grafico> getGrafico() {
        return Grafico;
    }

    public void setGrafico(List<Grafico> grafico) {
        Grafico = grafico;
    }


    public void refreshChart() {
        GraficoBean Gb = new GraficoBean();
        Gb.gerarGrafico();
    }

    private void createLineModels() {



            System.out.println("createLineModels()");
            lineModel1 = (LineChartModel) LinearModel();
            lineModel1.setTitle("Gráfico de Reservatório");
            lineModel1.setLegendPosition("e");
            Axis yAxis = lineModel1.getAxis(AxisType.Y);
            yAxis.setLabel("Nível");

            yAxis.setMin(0);
            yAxis.setMax(100);
            Axis xAxis = lineModel1.getAxis(AxisType.X);
            xAxis.setLabel("Hora do dia");
            xAxis.setMin(0);
            xAxis.setMax(23);
            xAxis.setTickInterval("1");


    }



    public CartesianChartModel LinearModel() {
        LineChartModel model = new LineChartModel();
        LineChartSeries series1 = new LineChartSeries();

//        try{
//            if(series1.getLabel().equalsIgnoreCase("Nivel"))
//            {
//                System.out.println("já existe legenda");
//                
//            }
//        }
//        
//        catch(Exception e){
//            
//            
//        
        try{

        LegendPlacement OUTSIDE=LegendPlacement.OUTSIDE;
        series1.set(0, 0);
        //series1.set(0, 0);

        model.addSeries(series1);
        series1.setLabel("Nível");
        series1.setFill(true);

        lineModel1 =(LineChartModel) model;
        //lineModel1.setSeriesColors("58BA27,FFCC33,F74A4A,F52F2F,A30303");
        //lineModel1.setExtender("chartExtender");

        lineModel1.setTitle("Gráfico de Reservatório");
        lineModel1.setLegendPlacement(OUTSIDE);
        lineModel1.setLegendPosition("e");

        Axis yAxis = lineModel1.getAxis(AxisType.Y);

        yAxis.setMin(0);
        yAxis.setMax(100);
        yAxis.setLabel("Nível");
        Axis xAxis = lineModel1.getAxis(AxisType.X);
        xAxis.setLabel("Hora do dia");
        xAxis.setMin(0);
        xAxis.setMax(23);
        xAxis.setTickInterval("1");

        int nivel;

        System.out.println("AQUI:: "+listaReservatorio.size());
        try
        {

        System.out.println("Id do reservatorio: "+reservatorio.getIdReservatorio());
        DateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy");
        for (int i = 0; i < listaReservatorio.size(); i++) {
            if (listaReservatorio.get(i).getIdReservatorio() == reservatorio
                    .getIdReservatorio()) {
                reservatorio1 = listaReservatorio.get(i);
            }
        }
        System.out.println("graficoDAO: "+graficoDAO.listar().size());
        listaGrafico = graficoDAO.listar();

        System.out.println("Meu reservatorio: "+reservatorio1.getNomeReservatorio());

        String date;  
        for (int i = 0; i < listaGrafico.size(); i++) {
                date = listaGrafico.get(i).getData().substring(0, 10);

                if ((listaGrafico.get(i).getReservatorio().getIdReservatorio() == reservatorio1.getIdReservatorio()) && (dataFormatada.format(data).equalsIgnoreCase(date)) ) {
                    System.out.println("Dentro do IF: "+i);
                    listaGraficoFinal.add(listaGrafico.get(i));
                System.out.println("Dentro do IF");

            }
        }

        System.out.println("Lista Grafico final size: "+ listaGraficoFinal.size());

        }catch(Exception e)
        {
            System.out.println("É NULA: "+e.getCause());
            e.printStackTrace();

            listaGraficoFinal=null;
        }


        System.out.println("InitLinear aqui");

        if (listaGraficoFinal != null) {

            System.out.println("AQUI O QUE INTERESSA Não é null");

            try {
                System.out.println("Tamanho:" + listaGraficoFinal.size());



                for (int i = 23; i >= 0; i--) {
                    //System.out.println("Nivel: " + listaGraficoFinal.get(i).getNivel());
                    //System.out.println("Data: "
                    //        + listaGraficoFinal.get(i).getData().substring(11, 13));
                    int x =listaGraficoFinal.get(i).getNivel();
                    int y =Integer.parseInt(listaGraficoFinal.get(i).getData().substring(11, 13)); 


                    System.out.println("X : "+x);
                    System.out.println("Y : "+y);
                    System.out.println("========================");
                    series1.set(y,x);



                }
                //series1.set(20, 20);

            } catch (Exception e) {
                System.out.println("Erro aqui 1: " + e.getCause());
                System.out.println("Erro 2: ");
                e.printStackTrace();
                FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Não existe informação o suficiente no banco para gerar o gráfico."));

            }

        } else {

            System.out.println("Aqui é null");
            series1.set(0, 0);
            series1.set(0, 0);
        }
        }catch(Exception e){
            FacesContext
            .getCurrentInstance()
            .addMessage(
                    null,
                    new FacesMessage(
                            "Selecione uma data em que exista informação."));
        }
        model.addSeries(series1);
        return model;
    }

    public GraficoCrudAnnotations getGraficoDAO() {
        return graficoDAO;
    }

    public void setGraficoDAO(GraficoCrudAnnotations graficoDAO) {
        this.graficoDAO = graficoDAO;
    }

    public List<Grafico> getListaGrafico() {
        return listaGrafico;
    }

    public void setListaGrafico(List<Grafico> listaGrafico) {
        this.listaGrafico = listaGrafico;
    }

    public List<Grafico> getListaGraficoFinal() {
        return listaGraficoFinal;
    }

    public void setListaGraficoFinal(List<Grafico> listaGraficoFinal) {
        this.listaGraficoFinal = listaGraficoFinal;
    }

    public Reservatorio getReservatorio() {
        return reservatorio;
    }

    public void setReservatorio(Reservatorio reservatorio) {
        this.reservatorio = reservatorio;
    }

    public Reservatorio getReservatorio1() {
        return reservatorio1;
    }

    public void setReservatorio1(Reservatorio reservatorio1) {
        this.reservatorio1 = reservatorio1;
    }

    public List<Reservatorio> getListaReservatorio() {
        return listaReservatorio=reservatorioDAO.listar();
    }

    public void setListaReservatorio(List<Reservatorio> listaReservatorio) {
        this.listaReservatorio = listaReservatorio;
    }

    public ReservatorioCrudAnnotations getReservatorioDAO() {
        return reservatorioDAO;
    }

    public void setReservatorioDAO(ReservatorioCrudAnnotations reservatorioDAO) {
        this.reservatorioDAO = reservatorioDAO;
    }

    public Date getData() {
        return data;
    }

    public void setData(Date data) {
        this.data = data;
    }

    public void setGrafico(Grafico grafico) {
        this.grafico = grafico;
    }

1 个答案:

答案 0 :(得分:0)

在我看来,你有这条线

model.addSeries(series1);

两次。我想这可以解释它。