You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Davor Hrg <hr...@gmail.com> on 2007/07/05 17:03:58 UTC
Re: How can i make a Tapestry Component of a Stream Response
I've got little time so I did not try this,
I think this could work:
start with source from
org.apache.tapestry.corelib.components.ActionLink
change renderBody:
from
Link link = _resources.createActionLink(ACTION_EVENT, false,
contextArray);
writer.element("a", "href", link, "id", _clientId);
to:
Link link = _resources.createActionLink("graph", false,
contextArray);
writer.element("IMG", "src", link, "id", _clientId);
and then make your method for generating the graphs:
public StreamResponse onGraph(Object[] context) {
JFreeChart jfreeChart = new BurnDownChartGenerator(context).getChart() ;
return jfreeChart != null ? new ImageStreamResponse("image/jpeg",
jfreeChart) : new TextStreamResponse("text/html","chart not available") ;
}
On 6/28/07, Peter Schröder <Pe...@freenet-ag.de> wrote:
>
> hi fidel,
>
> there is already an example somewhere on the list. search for
> streamresponse or chart.
>
> kind regards,
> peter
>
> -----Ursprüngliche Nachricht-----
> Von: Fidel Chavarria [mailto:fidelchavarria@gmail.com]
> Gesendet: Donnerstag, 28. Juni 2007 01:09
> An: users@tapestry.apache.org
> Betreff: How can i make a Tapestry Component of a Stream Response
>
>
> I trying to create a Chart dinamically and place it in a html page , to
> do
> so a create a ImageStreamResponse class that convert my Jfreechart
> instance
> to a byteArrayInputStream
>
>
> class ImageStreamResponse implements StreamResponse {
>
> private JFreeChart jfreeChart ;
> private String contentType ;
>
> public ImageStreamResponse(final String contentType,
> JFreeChart chart){
> this.contentType = contentType ;
> jfreeChart = chart ;
> }
>
> public String getContentType() {
> return contentType;
> }
>
> public InputStream getStream() throws IOException {
> BufferedImage image =
> jfreeChart.createBufferedImage(600, 400);
> ByteArrayOutputStream byteArray = new
> ByteArrayOutputStream() ;
> ChartUtilities.writeBufferedImageAsJPEG(byteArray,
> image) ;
> return new ByteArrayInputStream(
> byteArray.toByteArray());
> }
>
> }
>
>
> with an ActionLink
>
> StreamResponse onActionFromViewChart(Object[] context) {
> return viewChart.getGraph(context) ;
> }
>
>
> my viewChart.getGraph(Object[] context) method
>
> public StreamResponse getGraph(Object[] context) {
> JFreeChart jfreeChart = new BurnDownChartGenerator(context).getChart() ;
> return jfreeChart != null ? new ImageStreamResponse("image/jpeg",
> jfreeChart) : new TextStreamResponse("text/html","chart not available") ;
> }
>
>
> it generate a blank page with the image, but i need it to be a component
> so
> i can place it (the image)within a fancy page.
>
> --
> View this message in context:
> http://www.nabble.com/How-can-i-make-a-Tapestry-Component-of-a-Stream-Response-tf3989719.html#a11328870
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>