IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

BarChart PrimeFaces catégories


Sujet :

JSF Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut BarChart PrimeFaces catégories
    Salut,

    je suis amené à afficher les catégories avec une barChart de primesfaces

    http://www.primefaces.org/showcase/ui/barChart.jsf

    il me donne une imcompatiblité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.ClassCastException: java.util.Vector cannot be cast to org.primefaces.model.chart.CartesianChartModel
    je veux afficher dans le graphe les catégories des produits de la base de données pas dans une liste
    est ce que quelqu'un l'a déjà fait ?

    merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    To objet barChart attends un objet de type org.primefaces.model.chart.CartesianChartModel dans l'attribut value, et à mon avis sans même voir le code, tu dois surement faire pointer cet attribut sur un objet de type java.util.Vector, d'où l'erreur de Cast.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    public class ChartBean implements Serializable {  
     
        private CartesianChartModel categoryModel;  
     
        public ChartBean() {  
            createCategoryModel();  
        }  
     
        public CartesianChartModel getCategoryModel() {  
            return categoryModel;  
        }  
     
        private void createCategoryModel() {  
            categoryModel = new CartesianChartModel();  
     
            ChartSeries boys = new ChartSeries();  
            boys.setLabel("Boys");  
     
            boys.set("2004", 120);  
            boys.set("2005", 100);  
            boys.set("2006", 44);  
            boys.set("2007", 150);  
            boys.set("2008", 25);  
     
            ChartSeries girls = new ChartSeries();  
            girls.setLabel("Girls");  
     
            girls.set("2004", 52);  
            girls.set("2005", 60);  
            girls.set("2006", 110);  
            girls.set("2007", 135);  
            girls.set("2008", 120);  
     
            categoryModel.addSeries(boys);  
            categoryModel.addSeries(girls);  
        }  
    }
    As-tu lu l'exemple ? Car si tu le respectes, je pense que tu n'auras plus de problème.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut
    Salut,

    oui j'ai lu l'exemple mon problème est comment faire un casting je sais que l'erreur provient de ça mais je travaille avec une liste de base de données
    comment la caster je veux le prendre de la base de données et non pas une liste
    comme ce qui est figuré dans le site de primesfaces
    j'ai déja testé avec une liste normale je veux la liste de la base de données
    pour afficher le graphe dynamiquement

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Citation Envoyé par othman22222 Voir le message
    Salut,

    oui j'ai lu l'exemple mon problème est comment faire un casting je sais que l'erreur provient de ça mais je travaille avec une liste de base de données
    comment la caster je veux le prendre de la base de données et non pas une liste
    comme ce qui est figuré dans le site de primesfaces
    j'ai déja testé avec une liste normale je veux la liste de la base de données
    pour afficher le graphe dynamiquement
    Je pense que si le graphique impose ces objets c'est qu'il doit y avoir des raisons. Et pour cause, faire un graphique sans connaitre à l'avance le type ou la structure des données à afficher est beaucoup trop abstrait.

    Cela dit, je ne pense pas que le graphique reste pour autant inutilisable pour toi. Je ne connais pas la liste de ta base de données, mais peut-être que les objets créés par Primefaces peuvent correspondre à tes données. Il te suffit de faire des méthodes (pré-affichage) pour insérer tes données dans les objets de type ChartBean, puis dans les ajouter dans l'objet de type CartesianChartModel.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut
    Salut ,

    je travaille avec java.util.list à partir duquel je prends une liste des catégories de la base et je dois la convertir pour me donner le graphe en barchart de primesfaces

    je veux afficher dynamiquement le contenu de la base de données.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Quelles sont les données (attributs) de tes catégories ?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut
    Salut,

    j'ai numerocategorie Integer

    libelle un String

    j'ai trouvé ce lien pour travailler dessus mais ça marche pas


    http://forum.primefaces.org/viewtopic.php?f=3&t=18586

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    slt,


    jai numerocategorie Integer

    libelle un String
    Alors soit je n'ai pas compris ta demande, soit tu n'as pas compris ce que le composant BarChart propose comme service.

    Le composant BarChart permet d'agencer sous forme de Graphique des données. Pour cela, il lui faut un libellé (attribut que tu possèdes bien dans ta classe) mais aussi une abscisse et une ordonnée (comme pour une courbe), afin qu'il puisse créer son graphique.

    C'est ce qui est montré dans l'exemple sur le site de primefaces

    Je créé ma structure pour mon graphique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    categoryModel = new CartesianChartModel();
    Je créé mon type de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            ChartSeries boys = new ChartSeries();
    Je lui attribue un nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            boys.setLabel("Boys");
    J'affecte mes coordonnées pour mon type de données (Ici une année pour l'abscisse et un nombre (de garçon) pour l'ordonnée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            boys.set("2004", 120);  
            boys.set("2005", 100);  
            boys.set("2006", 44);  
            boys.set("2007", 150);  
            boys.set("2008", 25);
    Or dans ta structure, je ne vois pas d'équivalent qui pourrait correspondre.

    Ou alors, je ne pense pas que ce genre de graphique soit adapté pour ton cas.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut
    Salut,

    je sais lexemple je ai déja testé je veux travaillé avec une liste de la base

    si je crois que cest possible avec un hashmap


    tas un code que tas déja fait pour je puisse minspiré ????



    dans le managedBean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
      private CartesianChartModel chartModel;
       private List<Produit> produitList;
     
      public void createChartSeries(){
     
     
        for (Produit product: produitList)
        {
          ChartSeries proSeries = new ChartSeries();
          proSeries.setLabel(product.getDescription());
          Map<Object , Number> groupData = new HashMap<Object, Number>();
          groupData.put(product.getDescription(),product.getItem());
          proSeries.setData(groupData);
          chartModel.addSeries(proSeries);
        }
     
     
      }
     
      public void createGroupHolder(){
     
        Produit pro1 = new Produit();
        pro1.setDescription("PRODUCT1");
        pro1.setItem(120);
     
        Produit pro2 = new Produit();
        pro2.setDescription("PRODUCT2");
        pro2.setItem(150);
     
        Produit pro3 = new Produit();
        pro3.setDescription("PRODUCT3");
        pro3.setItem(170);
     
        Produit pro4 = new Produit();
        pro4.setDescription("PRODUCT4");
        pro4.setItem(50);    
     
        produitList.add(pro1);
        produitList.add(pro2);
        produitList.add(pro3);
        produitList.add(pro4); 
     
      }
     
      public CartesianChartModel getChartModel() {
        return chartModel;
      }
     
      public void setChartModel(CartesianChartModel chartModel) {
        this.chartModel = chartModel;
      }
     
        public CategorieMBean() {
     
     //createCategoryModel(); 
          Categorie c = new Categorie();
           c.getNumeroCategorie();
     
        chartModel = new CartesianChartModel();
       //
         produitList = new ArrayList<Produit>();
     
     
           produitList = produitManager.getAllProduits();
     
     
     
        createGroupHolder();
        createChartSeries();
     
        System.out.println("End initilizing..");
     
     
        }



    dans la vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
           <h:form id="formschart">
            <p:barChart id="products" value="#{categorieMBean.chartModel}" title="Product Chart" 
    		seriesColors="00FF00,3C70FF,FF3240"/>  
    </h:form>

    il me donne null pointeur ici produitList = produitManager.getAllProduits();
    alors que la méthode est juste

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    il me donne null pointeur ici produitList = produitManager.getAllProduits();
    alors que la méthode est juste
    C'est surement produitManager qui doit être null. Je te conseille de passer en mode debug pour le vérifier.

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 110
    Par défaut
    Salut,


    c'est bon j"ai travaillé avec JFreechart merci quand meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/08/2007, 16h15
  2. Firefox et HTML BarChart
    Par clisson dans le forum XMLRAD
    Réponses: 2
    Dernier message: 14/05/2005, 11h01
  3. [CR8.5] Total par catégorie
    Par sperron dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 21/02/2005, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo