PrimeFaces Piechart: les info-bulles ne s'affichent pas dans mon environnement local



sidebar primefaces (1)

J'ai fait face au même problème. L'utilisation d'un prolongateur l'a réparé:

  • Facelet:

    <script type="text/javascript">
        function pieExtender() {
            this.cfg.highlighter = {
                show: true,
                tooltipLocation: 'n',
                useAxesFormatters: false,
                formatString: '%s = %d'
            };
        }
    </script>
    
  • Bean géré:

    pieModel.setExtender("pieExtender");
    

Pour plus de peaufinage, voir: http://www.jqplot.com/docs/files/plugins/jqplot-highlighter-js.html

J'ai recréé la page d'exemple montrée dans la vitrine des primeurs à:

http://www.primefaces.org/showcase/ui/chart/pie.xhtml

Le diagramme à secteurs s'affiche avec succès et je suis en mesure de modifier le modèle de graphique à secteurs pour les setters et getters disponibles, mais le fait de planer sur un morceau de la tarte n'affiche aucune info-bulle.

Ce n'est pas un problème de navigateur, car dans le même navigateur, les info-bulles s'affichent sur le site de démonstration.

La div jqplot-highlighter-tooltip est montrée dans la source html, mais elle n'est pas mise à jour sur hover. Il n'y a pas d'erreur dans la console javascript.

J'utilise la dépendance 5.2 maven, et j'ai aussi essayé 4.0 - mais sans changement.

Apprécierait des idées.

Merci.

Le code du bean géré est le suivant:

package org.primefaces.examples;

import org.primefaces.model.chart.PieChartModel;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import java.io.Serializable;

@ManagedBean
public class ChartView implements Serializable {

    private static final long serialVersionUID = 1075867144472594293L;

    private PieChartModel pieModel1;
    private PieChartModel pieModel2;

    @PostConstruct
    public void init() {
        createPieModels();
    }

    public PieChartModel getPieModel1() {
        return pieModel1;
    }

    public PieChartModel getPieModel2() {
        return pieModel2;
    }

    private void createPieModels() {
        createPieModel1();
        createPieModel2();
    }

    private void createPieModel1() {
        pieModel1 = new PieChartModel();

        pieModel1.set("Brand 1", 540);
        pieModel1.set("Brand 2", 325);
        pieModel1.set("Brand 3", 702);
        pieModel1.set("Brand 4", 421);

        pieModel1.setTitle("Simple Pie");
        pieModel1.setLegendPosition("w");
    }

    private void createPieModel2() {
        pieModel2 = new PieChartModel();

        pieModel2.set("Brand 1", 540);
        pieModel2.set("Brand 2", 325);
        pieModel2.set("Brand 3", 702);
        pieModel2.set("Brand 4", 421);

        pieModel2.setTitle("Custom Pie");
        pieModel2.setLegendPosition("e");
        pieModel2.setFill(false);
        pieModel2.setShowDataLabels(true);
        pieModel2.setDiameter(150);
    }

}

Le code de la page d'affichage est:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">

<h:head/>

<h:body>
    <p:chart type="pie" model="#{chartView.pieModel1}" style="width:400px;height:300px" />

    <p:chart type="pie" model="#{chartView.pieModel2}" style="width:400px;height:300px" />
</h:body>

</html>