JFree Chart Portlet In Liferay
note:-
these are two important jars
This example uses resource serving to generate PNG image from a portlet
view.jsp:
note:-

these are two important jars
This example uses resource serving to generate PNG image from a portlet
ChartPortlet.java:
import java .io. IOEx cept ion;
import java .io. Outp utSt ream ;
import java x.po rtle t.Ge neri cPor tlet ;
import java x.po rtle t.Po rtle tExc epti on;
import java x.po rtle t.Po rtle tReq uest Disp atch er;
import java x.po rtle t.Re nder Requ est;
import java x.po rtle t.Re nder Resp onse ;
import java x.po rtle t.Re sour ceRe ques t;
import java x.po rtle t.Re sour ceRe spon se;
import java x.po rtle t.Re sour ceUR L;
import org.jfree.chart.*;
import org. jfre e.ch art. plot .*;
import org. jfre e.ch art. rend erer .cat egor y.Ba rRen dere r;
import org. jfre e.da ta.c ateg ory. Defa ultC ateg oryD atas et;
/**
* Portlet implementation class ChartPortlet
*/
public class ChartPortlet extends GenericPortlet {
public void init() {
viewJSP = getInitParameter(" view-jsp" );
}
@Override
public void serv eRes ourc e(Re sour ceRe ques t request, ResourceResponse response)
throws PortletException, IOException {
// supe r.se rveR esou rce( requ est, response);
String resourceID = requ est. getR esou rceI D();
if (resourceID.equals(" chart-image" )) {
resp onse .set Cont entT ype( " image/png" );
OutputStream out = resp onse .get Port letO utpu tStr eam( );
Defa ultC ateg oryD atas et dataset = new Defa ultC ateg oryD atas et() ;
data set. addV alue (1.0 , " Row 1" , " Column 1" );
data set. addV alue (2.0 , " Row 1" , " Column 2" );
data set. addV alue (3.0 , " Row 1" , " Column 3" );
data set. addV alue (4.0 , " Row 2" , " Column 1" );
data set. addV alue (5.0 , " Row 2" , " Column 2" );
data set. addV alue (6.0 , " Row 2" , " Column 3" );
try {
JFreeChart chart = Char tFac tory .cre ateB arCh art( " Bar Chart" , " Category" , " Value" , dataset, Plot Orie ntat ion. VERT ICAL , true, true, false);
if (chart != null) {
CategoryPlot plot = (CategoryPlot) chart.getPlot();
BarRenderer renderer = (BarRenderer) plot.getRenderer();
rend erer .set Item Marg in(0 .0);
Char tUti liti es.w rite Char tAsP NG(o ut, chart, 400, 300);
}
} catch (Exception e) {
Syst em.e rr.p rint ln(e .toS trin g()) ;
} finally {
out.close();
}
}
}
public void doView(
RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException {
// Pass the resource URL as a Java bean named resourceUrl to the view JSP
ResourceURL chartUrl = rend erRe spon se.c reat eRes ourc eURL ();
char tUrl .set Reso urce ID(" chart-image" );
String resourceUrl = char tUrl .toS trin g();
rend erRe ques t.se tAtt ribu te(" resourceUrl" , resourceUrl);
include(viewJSP, renderRequest, renderResponse);
}
protected void include(
String path, RenderRequest renderRequest,
RenderResponse renderResponse)
throws IOException, PortletException {
Port letR eque stDi spat cher port letR eque stDi spat cher =
getP ortl etCo ntex t(). getR eque stDi spat cher (pat h);
port letR eque stDi spat cher .inc lude (ren derR eque st, renderResponse);
}
protected String viewJSP;
}
< %@ taglib uri=" http ://j ava. sun. com/ port let_ 2_0" prefix=" portlet" %>
< %@ page import=" javax.portlet.*" %>
< port let: defi neOb ject s /> < img src = " ${resourceUrl} " />
portlet.xml:
< ?xml version=" 1.0" ?>
< portlet-app
version=" 2.0"
xmlns=" http ://j ava. sun. com/ xml/ ns/p ortl et/p ortl et-a pp_2 _0.x sd"
xmlns:xsi=" http ://w ww.w 3.or g/20 01/X MLSc hema -ins tanc e"
xsi:schemaLocation=" http ://j ava. sun. com/ xml/ ns/p ortl et/p ortl et-a pp_2 _0.x sd http ://j ava. sun. com/ xml/ ns/p ortl et/p ortl et-a pp_2 _0.x sd"
>
< portlet>
< portlet-name> chartportlet< /portlet-name>
< display-name> ChartPortlet< /display-name>
< portlet-class> ChartPortlet< /portlet-class>
< init-param>
< name> view-jsp< /name>
< value> /htm l/ch artp ortl et/v iew. jsp< /value>
< /init-param>
< expiration-cache> 0< /expiration-cache>
< supports>
< mime-type> text/html< /mime-type>
< portlet-mode> VIEW< /portlet-mode>
< /supports>
< portlet-info>
< title> ChartPortlet< /title>
< short-title> ChartPortlet< /short-title>
< keywords> < /keywords>
< /portlet-info>
< security-role-ref>
< role-name> administrator< /role-name>
< /security-role-ref>
< security-role-ref>
< role-name> guest< /role-name>
< /security-role-ref>
< security-role-ref>
< role-name> power-user< /role-name>
< /security-role-ref>
< security-role-ref>
< role-name> user< /role-name>
< /security-role-ref>
< /portlet>
< /portlet-app>
No comments:
Post a Comment