[CEWOLF]Generer un Lien sur une section camembert

Résolu
killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005 - 24 févr. 2005 à 16:37
abdebr Messages postés 8 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 19 juillet 2005 - 14 mars 2005 à 21:58
Hi tlm,

Jaimerais savoir, comment obtenir un lien vers une page sur chaque sectio de mon camembert généré par mon code

Je suis pour l instant en mesure d affichier des info sur chaque portion du camembert en utilisant l'interface PieToolTipGenerator que j utilise ensuite dans ma JSP.

Mais comment faire, tjs à laide du PieToolTipGenerator je suppose ( ou autre), pour generer ces fichus liens ?jai rien trouvé sur le net qui soit en rapport direct avec cewolf (et pas JfreeChart)
Si kkun a des suggestions ou sait comment faire, merci de m aider !!!
Voila a + ALL !

Voici mon code :

Class :

package de.laures.cewolf.example;

import java.util.Date;

import java.util.Map;

import java.io.Serializable;

import org.jfree.data.general.*;

import de.laures.cewolf.DatasetProduceException;

import de.laures.cewolf.DatasetProducer;

import de.laures.cewolf.tooltips.PieToolTipGenerator;


public
class PieProducerClass
implements DatasetProducer, Serializable {

final String[] categories = {
"Modifés",
"Finalisés",
"Debutés",
"Spéc",
"Test" };





//Utilisation de l'interface, c ici qui faut indiker comment renvoyer un lien je suppose...
PieToolTipGenerator pieTG =
new PieToolTipGenerator() {

public String generateToolTip(PieDataset dataset, Comparable section,
int index) {

return String.valueOf(dataset.getValue(index) +
" projects " );
}
};





public PieToolTipGenerator getPieTG() {

return
this.pieTG;
}





//creation du PIE...
public Object produceDataset(Map params)
throws DatasetProduceException {




DefaultPieDataset ds =
new DefaultPieDataset();



for (
int i = 0; i < categories.length; i++) {



int y = (
int) (Math.random() * 10 + 1);


ds.setValue(categories[i],
new Integer(y));


}



return ds;


}





public
boolean hasExpired(Map params, Date since) {



return (System.currentTimeMillis() - since.getTime()) > 5000;


}





public String getProducerId() {



return
"PieChart";


}




}

Et la JSP


<%@page contentType=
"text/html"%>
<%@taglib uri=
'/WEB-INF/cewolf.tld' prefix=
'cewolf' %>


<HTML>

<center>Démonstration avec rendu de Charts
</center>


<jsp:useBean id=
"pie" class=
"de.laures.cewolf.example.PieProducerClass"/>
<%//Pour voir les ToolTip du chart, on aura un ptit text en dessous de chaque categorie%>
<% pageContext.setAttribute(
"pieChartViewToolTips", pie.getPieTG());
%>

<TABLE border=
"1">


<TR>


<%//////////////////////////////////////////////////////////////////////////////////////%>


<TD>


<cewolf:chart id=
"pieChart" title=
"PIM - Logiciels " type=
"pie3D" showlegend=
"true">



<cewolf:gradientpaint>



<cewolf:point x=
"0" y=
"0" color=
"#FFFFFF" />



<cewolf:point x=
"300" y=
"0" color=
"#DDDDFF" />



</cewolf:gradientpaint>



<cewolf:data>



<cewolf:producer id=
"pie" />



</cewolf:data>


</cewolf:chart>


<cewolf:img chartid=
"pieChart" renderer=
"cewolf" width=
"400" height=
"300" border=
"1">



<cewolf:map tooltipgeneratorid=
"pieChartViewToolTips"/>


</cewolf:img>


</TD>


</TR>


</TABLE>




</HTML>

6 réponses

killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005
14 mars 2005 à 11:06
Si si c possible est ca se fait tes bien dans une page JSP...
Voici le code l'ami ;) , j y ai passé pas mal de tps , mais a force on trouve !

Voila chef !

CODE du .java :


package de.laures.cewolf.example;


import java.util.Date;


import java.util.Map;


import java.io.Serializable;


import org.jfree.data.general.*;


import de.laures.cewolf.DatasetProduceException;


import de.laures.cewolf.DatasetProducer;


import de.laures.cewolf.tooltips.PieToolTipGenerator;


import de.laures.cewolf.links.*;





public
class PieProducerClass
implements DatasetProducer, Serializable {





//final String[] categories = { "Modifés", "Finalisés", "Debutés", "Spéc", "Test" };









public Object produceDataset(Map params)
throws DatasetProduceException {




DefaultPieDataset ds =
new DefaultPieDataset();





//generation du tableau


String [] categories =
null ;


categories = (String [])params.get(
"categories");





//generation des valeurs pour chaque indice du tableau



for (
int i = 0; i < categories.length; i++) {



int y = (
int) (Math.random() * 10 + 1);



//on construit le dataset avec le tableau


ds.setValue(categories[i],
new Integer(y));


}



return ds;


}





public
boolean hasExpired(Map params, Date since) {



return (System.currentTimeMillis() - since.getTime()) > 5000;


}





public String getProducerId() {



return
"PieChart";


}





//génération des Tooltips


PieToolTipGenerator pieTG =
new PieToolTipGenerator() {





public String generateToolTip(PieDataset dataset, Comparable section,
int index) {



return String.valueOf(dataset.getValue(index) +
" projects " );


}


};





public PieToolTipGenerator getPieTG() {



return
this.pieTG;


}





//génération des Liens


LinkGenerator pieLG =
new PieSectionLinkGenerator() {



public String generateLink(Object dataset, Object category) {


String url =
"PieStats.jsp?Section="+category;



return url;


}


};





public LinkGenerator getPieLG() {



return
this.pieLG;


}









}

Code de la JSP


<%@page contentType =
"text/html"%>


<%@taglib uri=
'/WEB-INF/cewolf.tld' prefix=
'cewolf' %>


<HTML>




<center>


Démonstration avec rendu de Charts


</center>


<jsp:useBean id=
"pie" class=
"de.laures.cewolf.example.PieProducerClass"/>


<% pageContext.setAttribute(
"pieChartViewToolTips", pie.getPieTG());
%>


<% pageContext.setAttribute(
"pieLinkGenerator", pie.getPieLG());
%>




<TABLE border=
"1">


<TR>


<%////////////////////////////////////PIE CHART////////////////////////////////////%>


<%


//en Statique


//String[] categories = { "Modifés", "Finalisés", "Debutés", "Spéc", "Test" };


//en Dynamique


int i = 7 ;


String [] categories =
new String[i];


for (
int j =0;j


<TD>


<cewolf:chart id=
"pieChart" title=
"PIM - Logiciels " type=
"pie3D" showlegend=
"true">



<cewolf:gradientpaint>



<cewolf:point x=
"0" y=
"0" color=
"#FFFFFF" />



<cewolf:point x=
"300" y=
"0" color=
"#DDDDFF" />



</cewolf:gradientpaint>



<cewolf:data>



<cewolf:producer id=
"pie" >



<cewolf:param


name =
"categories"


value =
"<%=categories %>" />



</cewolf:producer>



</cewolf:data>


</cewolf:chart>


<cewolf:img chartid=
"pieChart" renderer=
"cewolf" width=
"400" height=
"300" border=
"1">



<cewolf:map tooltipgeneratorid=
"pieChartViewToolTips" linkgeneratorid=
"pieLinkGenerator"/>


</cewolf:img>


</TD>
3
abdebr Messages postés 8 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 19 juillet 2005
13 mars 2005 à 18:58
désolé, mais si tu as trouvé, peux tu mettre à dispo le code permettant d'avoir les liens sur l'image générée.
perso, je ne suis pas sûr que celà soit possible en dehors d'une applet.
0
abdebr Messages postés 8 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 19 juillet 2005
14 mars 2005 à 15:40
ok merci, ça va beaucoup m'aider, je dois faire la même chose avec un histogramme.
0
somnix Messages postés 2 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 20 février 2006
14 mars 2005 à 16:51
hello,

je viens de recopier ton exemple et malheureusement je ne vois aucun tooltips et aucun lien ... si je regarde le code source de la page generee il y a juste le code html de l'image :

<HTML>

<center>
Démonstration avec rendu de Charts

</center>



</HTML>

est ce que tu as une idée de quoi ca peut provenir ?
merci de ton aide

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abdebr Messages postés 8 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 19 juillet 2005
14 mars 2005 à 20:55
merci, ton example marche impeccable. j'ai juste un peu de mal à paramétrer cewolf avec mon Tomcat.

merci killahbeez68, il ne me reste plus qu'à adapter avec un histogramme.

somnix : voilà le code HTML généré avec l'example de killahbeez68.

<HTML>

<center>
Démonstration avec rendu de Charts

</center>
<TABLE border="1">
<TR><TD>
<MAP name="pieChart">
[PieStats.jsp;jsessionid=E61B41FEC624C09EC4A30CEC59E355F5?Section=Projet n°0
]
[PieStats.jsp;jsessionid=E61B41FEC624C09EC4A30CEC59E355F5?Section=Projet n°2
]
[PieStats.jsp;jsessionid=E61B41FEC624C09EC4A30CEC59E355F5?Section=Projet n°4
]
</MAP>

</TD>
0
abdebr Messages postés 8 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 19 juillet 2005
14 mars 2005 à 21:58
encore une fois merci. killahbeez68
j'ai réussi à partir de ton exemple à faire mon histogramme.

pour la JSP

<%@page contentType="text/html"%>


<%@taglib uri='/WEB-INF/cewolf.tld' prefix='cewolf' %>


<HTML>




<center>


Démonstration avec rendu de Charts


</center>


<jsp:useBean id="bar" class="de.laures.cewolf.example.HistogrammProducerClass" scope="page"/>


<% pageContext.setAttribute("barChartViewToolTips", bar.getBarTG()); %>


<% pageContext.setAttribute("barLinkGenerator", bar.getBarLG()); %>





<TABLE border="1">


<TR>


<%////////////////////////////////////PIE CHART////////////////////////////////////%>


<%


//en Statique


//String[] categories = { "Modifés", "Finalisés", "Debutés", "Spéc", "Test" };


//en Dynamiquei 7 ;[] categories new String[i];(int j =0;j


<TD>


<cewolf:chart id="barChart" title="PIM - Logiciels " type="verticalbar3d" showlegend="true">


<cewolf:gradientpaint>


<cewolf:point x="0" y="0" color="#FFFFFF" />


<cewolf:point x="300" y="0" color="#DDDDFF" />


</cewolf:gradientpaint>


<cewolf:data>


<cewolf:producer id="bar" >


<cewolf:param


= "categories"


"<%categories %>" />


</cewolf:producer>


</cewolf:data>


</cewolf:chart>


<cewolf:img chartid="barChart" renderer="cewolf" width="400" height="300" border="1">


<cewolf:map tooltipgeneratorid="barChartViewToolTips" linkgeneratorid="barLinkGenerator"/>


</cewolf:img>


</TD>

pour la classe java :

package de.laures.cewolf.example;


import java.io.Serializable;
import java.util.Date;
import java.util.Map;


import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;


import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.CategoryItemLinkGenerator;
import de.laures.cewolf.links.LinkGenerator;
import de.laures.cewolf.tooltips.CategoryToolTipGenerator;


/**
* @author Propriétaire
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class HistogrammProducerClass implements DatasetProducer, Serializable {


/**
*
*/
public HistogrammProducerClass() {
super();
}


/*
* (non-Javadoc)
*
* @see de.laures.cewolf.DatasetProducer#produceDataset(java.util.Map)
*/
public Object produceDataset(Map params) throws DatasetProduceException {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
// generation du tableau


String[] categories = null;


categories = (String[]) params.get("categories");


// generation des valeurs pour chaque indice du tableau


for (int i = 0; i < categories.length; i++) {


int y = (int) (Math.random() * 10 + 1);


// on construit le dataset avec le tableau
dataset.addValue(Double.parseDouble("" + i), "test", categories[i]);
}
return dataset;
}


/*
* (non-Javadoc)
*
* @see de.laures.cewolf.DatasetProducer#hasExpired(java.util.Map,
* java.util.Date)
*/
public boolean hasExpired(Map params, Date since) {
// return false;
return (System.currentTimeMillis() - since.getTime()) > 5000;
}


/*
* (non-Javadoc)
*
* @see de.laures.cewolf.DatasetProducer#getProducerId()
*/
public String getProducerId() {
return "BarChart";
}


// génération des Tooltips
CategoryToolTipGenerator categoryTG = new CategoryToolTipGenerator() {


public String generateToolTip(CategoryDataset dataset, int series,
int index) {
return String.valueOf(dataset.getValue(series, index) + " Sld ");
}


};


public CategoryToolTipGenerator getBarTG() {
return this.categoryTG;
}


LinkGenerator categoryLG = new CategoryItemLinkGenerator() {
public String generateLink(Object dataset, int series, Object category) {
String url = "categoryStats.jsp?Section=" + category;
return url;
}
};

public LinkGenerator getBarLG() {
return this.categoryLG;
}


}
0
Rejoignez-nous