Salut,
Dans mon application JSF j'ai des graphique qui sont générés via les composant graphique de la librairie de composants ace d'Icefaces. Dans les graphique générés je souhaite retirer le quadrillage. En analysant le code source de la librairie de composant je me suis rendu compte qu'il utilise la librairie javascript jqplot. Mais il ne donne pas la possibilité d'accéder à tout les attributs que fournit cette librairie. J'ai donc implémenté une version évolué du composant. Lorsque j'affiche le graphique j'ai une erreur durant le rendu : this.renderer.init is undefined, et cela uniquement quand il y a des données à afficher. J'ai récupéré le script jqplot généré pour l'analyser mais tous me semble correct. Quelqu'un pourrait t'il m'aider afin de comprendre ce qui ne va pas dans le script.
CustomAxis.java
Voici le script jqplot généré :
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 package com.omb.view.component; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.icefaces.ace.component.chart.Axis; import org.icefaces.ace.json.JSONException; import org.icefaces.ace.json.JSONObject; /** * * @author OMBINTE */ public class CustomAxis extends Axis { /** * Commentaire pour <code>serialVersionUID</code> */ private static final long serialVersionUID = 8480540856493098311L; private static Log logger = LogFactory.getLog(CustomAxis.class); private Boolean showGridline = Boolean.TRUE; @Override public String toString() { String res = null; try { JSONObject json = new JSONObject(super.toString()); JSONObject options = getChildren(json, "tickOptions"); if (options != null) { options.put("showGridline", showGridline.booleanValue()); json.put("tickOptions", options); } else { StringBuilder jsonOpts = new StringBuilder("{\"showGridline\":") .append(showGridline.booleanValue()).append("}"); options = new JSONObject(jsonOpts.toString()); json.put("tickOptions", options); } res = json.toString(); } catch (JSONException jsoe) { logger.error("An error occured during setting of chart option with JSON", jsoe); } return res; } private JSONObject getChildren(JSONObject parent, String name) { try { JSONObject child = parent.getJSONObject(name); return child; } catch (JSONException jsoe) { return null; } } public Boolean getShowGridline() { return this.showGridline; } public void setShowGridline(Boolean showGridline) { this.showGridline = showGridline; } }
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 var barChart = ice.ace.create( "Chart", [ "home:myChart", [[[1,112.0],[2,353.0],[3,337.0],[4,204.0],[5,372.0],[6,98.0],[7,274.0]],[[1,112.0],[2,353.0],[3,337.0],[4,204.0],[5,372.0],[6,98.0],[7,274.0]]], { "axes": { "xaxis": { "tickOptions":{"showGridline":"false","fontSize":"10px","angle":-60}, "tickRenderer":"ice.ace.jq.jqplot.CanvasAxisTickRenderer", "ticks":["Value 1","Value 2","Value 3","Value 4","Value 5","Value 6","Value 7"], "renderer":"ice.ace.jq.jqplot.CategoryAxisRenderer", "drawMajorGridLines":false,"autoscale":true }, "yaxis": {"drawMajorGridLines":false,"autoscale":true} }, "seriesDefaults": { renderer":ice.ace.jq.jqplot.BarRenderer }, "series": [ { "label":"Legend 1", "shadow":false, "color":"#38AAE1", "renderer":ice.ace.jq.jqplot.BarRenderer }, { "label":"Legend 2", "shadow":false, "color":"#00983A", "renderer":ice.ace.jq.jqplot.BarRenderer } ], "legend": { "show":true, "placement":"outsideGrid", "location":"e" }, "highlighter": { "show":true, "showMarker":false, "tooltipLocation":"n", "bringSeriesToFront":true }, "animate":true } ]);
Partager