<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Everything is wrong &#187; GIT</title>
	<atom:link href="http://everythingiswrong.free.fr/index.php/category/gestion-de-configuration/git-gestion-de-configuration/feed/" rel="self" type="application/rss+xml" />
	<link>http://everythingiswrong.free.fr</link>
	<description>Un blog dédié à l&#039;informatique en général</description>
	<lastBuildDate>Wed, 06 Oct 2021 21:20:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>JSF Charts : graphiques avec JSF</title>
		<link>http://everythingiswrong.free.fr/index.php/2013/01/31/jsf-charts-graphiques-avec-jsf/</link>
		<comments>http://everythingiswrong.free.fr/index.php/2013/01/31/jsf-charts-graphiques-avec-jsf/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 21:32:49 +0000</pubDate>
		<dc:creator>Yan</dc:creator>
				<category><![CDATA[GIT]]></category>
		<category><![CDATA[Java J2EE]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://everythingiswrong.free.fr/?p=2022</guid>
		<description><![CDATA[JSFCharts : des graphiques en JSF basés sur Highcharts.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Cela fait longtemps que je souhaite consacrer un article sur les graphiques en JSF. Après avoir essayé plusieurs solutions je n&#8217;ai été convaincu par aucune librairie. Il me semble que la plus intéressante est la solution proposée par <a href="http://www.primefaces.org/">PrimeFaces</a>. Ce que je n&#8217;aime pas dans cette approche c&#8217;est d&#8217;utiliser les classes spécifiques de la librairie JSF pour décrire les séries et non des collections simples. De plus, je ne trouve pas les graphiques très dynamiques. En tout cas pas à la hauteur des librairies Javascripts ou Flex qui existent actuellement.</p>
<p>Deux librairies Javascipts me semblent très performantes d&#8217;un point de vue utilisateur et développeur :</p>
<ul>
<li><a href="http://www.amcharts.com/">amCharts</a> :</li>
<ul>
<li>graphiques dynamiques, diversifiés, professionnels</li>
<li>licence gratuite</li>
</ul>
<li><a href="http://www.highcharts.com/">Highchart</a> :</li>
<ul>
<li>graphiques dynamiques, diversifiés, professionnels</li>
<li>approche déclarative des graphiques</li>
<li>licence nécessaire selon le type d&#8217;utilisation</li>
</ul>
</ul>
<p style="text-align: justify;">C&#8217;est l&#8217;approche déclarative des graphiques qui m&#8217;a convaincue de la fiabilité d&#8217;une librairie JSF basée sur Hightchart. On retrouve le même principe déclaratif dans les interfaces xhtml proposées par JSF. Je me suis donc lancé dans la création de cette librairie qui est un wrapper JSF de Highchart : <a title="jsfcharts" href="https://github.com/yanLanglois/jsfcharts" target="_blank">jsfcharts</a>. La demo ce trouve hébergée ici : <a title="showcase de jsfcharts" href="http://showcase-jsfcharts.rhcloud.com/home.jsf">http://showcase-jsfcharts.rhcloud.com/home.jsf</a>.</p>
<p style="text-align: justify;">Mon objectif : proposer une solution efficace à développer, agréable à utiliser et compatible avec plusieurs systèmes (PC, mobile, multi-navigateurs). C&#8217;est à dire :</p>
<ul>
<li>Rapide : peu de lignes à coder</li>
<li>Simple :</li>
<ul>
<li>objets simples sans préparation</li>
<li>Utilisation transparente de la librairie</li>
</ul>
</ul>
<p style="text-align: justify;">Au final, créer un graphique dynamique en JSF est presque aussi simple que créer un tableau (h:dataTable). Par exemple, pour le graphique ci-dessous, il faut écrire ce fichier xhtml et cette classe java :</p>
<pre class="brush: xhtml; gutter: true; first-line: 1">&lt;ui:composition xmlns="http://www.w3.org/1999/xhtml"
   xmlns:ui="http://java.sun.com/jsf/facelets"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:h="http://java.sun.com/jsf/html"
   xmlns:jsfcharts="http://everythingiswrong.org/jsfcharts"
   template="/WEB-INF/templates/default.xhtml"&gt;
   &lt;ui:define name="content"&gt;
       &lt;jsfcharts:chart id="test" marginRight="130" marginBottom="25"&gt;
          &lt;jsfcharts:title text="Monthly Average Temperature" /&gt;
          &lt;jsfcharts:subtitle text="Source: WorldClimate.com" /&gt;
          &lt;jsfcharts:xAxis categories="#{chartBean.abscisse}" /&gt;
          &lt;jsfcharts:yAxis&gt;
          &lt;jsfcharts:title text="Temperature (˚C)" /&gt;
          &lt;/jsfcharts:yAxis&gt;
          &lt;jsfcharts:legend layout="vertical" align="right" verticalAlign="top" x="-10" y="100" borderWidth="0"/&gt;
          &lt;jsfcharts:tooltip valueSuffix="˚C" /&gt;
          &lt;jsfcharts:series&gt;
              &lt;jsfcharts:serie label="Tokyo" value="#{chartBean.tokyo}" /&gt;
              &lt;jsfcharts:serie label="New York" value="#{chartBean.newYork}" /&gt;
              &lt;jsfcharts:serie label="Berlin" value="#{chartBean.berlin}" /&gt;
              &lt;jsfcharts:serie label="London" value="#{chartBean.london}" /&gt;
          &lt;/jsfcharts:series&gt;
       &lt;/jsfcharts:chart&gt;
...
&lt;/ui:composition&gt;</pre>
<pre class="brush: java; gutter: true; first-line: 1">package org.everythingiswrong.jsf.jsfchartsdemo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.enterprise.inject.Model;

@Model
public class ChartBean {

   private Double[] tokyo;
   private Double[] newYork;
   private Double[] berlin;
   private Double[] london;
   private List&lt;String&gt; abscisse;

   // Getter, Setter  ...

   @PostConstruct
   public void initialize() {
      tokyo = new Double[] {7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6};
      newYork = new Double[] {-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5};
      berlin = new Double[] {-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0};
      london = new Double[] {3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8};
      abscisse = Arrays.asList(new String[] {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"});
   }
}</pre>
<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid black;" src="http://everythingiswrong.free.fr/wp-content/uploads/jsfcharts.jpg" alt="" width="552" height="411" /></p>
<p style="text-align: justify;">Pour aller plus loin, je vous invite à visiter le projet github de JSFCharts : <a href="https://github.com/yanLanglois/jsfcharts">https://github.com/yanLanglois/jsfcharts</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://everythingiswrong.free.fr/index.php/2013/01/31/jsf-charts-graphiques-avec-jsf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
