Kimi's NutShell

          我荒廢的今日,正是昨日殞身之人祈求的明日

          BlogJava 新隨筆 管理
            141 Posts :: 0 Stories :: 75 Comments :: 0 Trackbacks

          package com.primesuccess.portal.chart;

          import com.primesuccess.portal.chartAttTemplate.LineAttTemplate;
          import com.primesuccess.portal.util.JSFUtils;

          import java.awt.Color;
          import java.awt.Font;
          import java.awt.RenderingHints;

          import java.io.IOException;
          import java.io.OutputStream;
          import java.io.PrintWriter;

          import java.io.Writer;

          import java.text.NumberFormat;

          import javax.faces.context.FacesContext;

          import javax.faces.context.ResponseStream;

          import java.io.OutputStream;

          import java.util.Hashtable;

          import javax.servlet.http.HttpServletResponse;

          import org.jfree.chart.ChartFactory;
          import org.jfree.chart.ChartRenderingInfo;
          import org.jfree.chart.JFreeChart;
          import org.jfree.chart.entity.StandardEntityCollection;
          import org.jfree.chart.imagemap.ImageMapUtilities;
          import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
          import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
          import org.jfree.chart.plot.CategoryPlot;
          import org.jfree.chart.plot.DatasetRenderingOrder;
          import org.jfree.chart.plot.PlotOrientation;
          import org.jfree.chart.renderer.category.LineAndShapeRenderer;
          import org.jfree.chart.servlet.ServletUtilities;
          import org.jfree.chart.title.TextTitle;
          import org.jfree.chart.urls.StandardCategoryURLGenerator;
          import org.jfree.data.category.CategoryDataset;


          public class LineBean {


          ??? CategoryDataset data;
          ??? LineAttTemplate att;


          ??? public LineBean(CategoryDataset data, LineAttTemplate att) {
          ??????? this.data = data;
          ??????? this.att = att;
          ??? }


          ??? static class LabelGenerator extends StandardCategoryItemLabelGenerator {

          ??????? public String generateItemLabel(CategoryDataset categorydataset, int i,
          ??????????????????????????????????????? int j) {
          ??????????? return categorydataset.getRowKey(i).toString();
          ??????? }

          ??????? LabelGenerator() {
          ??????????? super();
          ??????? }
          ??? }
          ???
          ??? static class StandardCategoryURLGeneratorEx extends StandardCategoryURLGenerator {
          ??? String prefix="aa.jspx";

          ??????? public String generateURL(CategoryDataset dataset, int series,
          ????????????????????????????? int category) {
          ??????????????????
          ??????????????????????????? return "#\""+" onclick=\"javascript:window.open('"+ super.generateURL(dataset,series,category)+"','newwindow','height=100,width=400')";
          ???????
          ??????? }
          //??????? public String getTargeURL(){
          //??????????? return
          //??????? }

          ??????? StandardCategoryURLGeneratorEx(String targeturl) {
          ??????????? super(targeturl);
          ??????? }
          ??? }

          ??? private JFreeChart createChart(String targetUrl) {
          ??????? JFreeChart jfreechart =
          ??????????? ChartFactory.createLineChart("", att.getDomaindesc(),
          ???????????????????????????????????????? att.getRangedesc(), data,
          ???????????????????????????????????????? PlotOrientation.VERTICAL, true, true,
          ???????????????????????????????????????? false);
          ??????? jfreechart.setBackgroundPaint(Color.white);
          ??????? CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
          ??????? categoryplot.setBackgroundPaint(att.getBackgroudpaint());
          ??????? categoryplot.setDomainAxisLocation(att.getDomainaxisloc());
          ??????? categoryplot.getDomainAxis().setTickLabelFont( new Font("Arial", Font.PLAIN, 8) );
          ??????? categoryplot.mapDatasetToRangeAxis(1, 1);
          ???????
          ??????? LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
          ??????? if (targetUrl != null && !targetUrl.trim().equals("")) {
          ???????????
          ??????????? lineandshaperenderer.setItemURLGenerator(new StandardCategoryURLGeneratorEx(targetUrl));
          ?????????
          ??????? }
          ??????? Hashtable hash=att.getSeriesitemlabelfont();
          ??????? for(int i=0;i<att.getSeries_count();i++){
          ??????????? lineandshaperenderer.setSeriesItemLabelFont(i,(Font)hash.get(i),true);
          ??????? }
          ??????? lineandshaperenderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
          ??????? lineandshaperenderer.setItemLabelGenerator(new LabelGenerator());
          ??????? lineandshaperenderer.setShapesFilled(att.isShapesfilled());
          ??????? lineandshaperenderer.setShapesVisible(att.isShapesvisible());
          ??????? categoryplot.setRenderer(lineandshaperenderer);
          ??????? categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
          ??????? jfreechart.setTitle(new TextTitle(att.getTitle(),
          ????????????????????????????????????????? new Font("Arial", Font.BOLD, 15)));
          ??????? jfreechart.setAntiAlias(false);
          ??????? jfreechart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
          ?????????????????????????????????????????? RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
          ??????? return jfreechart;
          ??? }

          ??? public String generateChart(String targetURL, PrintWriter pw, int w,
          ??????????????????????????????? int h) {
          ??????? JFreeChart chart = createChart(targetURL);
          ??????? ChartRenderingInfo info =
          ??????????? new ChartRenderingInfo(new StandardEntityCollection());
          ??????? String filename = new String();
          ??????? try {
          ??????????? filename =
          ??????????????????? ServletUtilities.saveChartAsPNG(chart, w, h, info, JSFUtils.getSession());

          ??????????? ImageMapUtilities.writeImageMap(pw, filename, info);
          ??????????? pw.flush();
          ??????? } catch (Exception e) {
          ??????????? e.printStackTrace();
          ??????????? filename = "public_error_500x300.png";
          ??????? }
          ??????? return filename;
          ??? }

          ??? public String[] getLastURLandFilename() throws IOException {
          ??????? HttpServletResponse resp =
          ??????????? (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
          ??????
          ??????? String filenames =
          ??????????? generateChart(att.getItemurl(), new PrintWriter((OutputStream)resp.getOutputStream()),
          ????????????????????????? att.getWidth(), att.getHeight());
          ??????? return new String[] { "/servlet/DisplayChart?filename=" + filenames,
          ????????????????????????????? filenames };
          ??? }


          }

          ?

          posted on 2006-04-30 16:45 Kimi 閱讀(406) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 汪清县| 社会| 锡林郭勒盟| 深圳市| 郓城县| 佛坪县| 海伦市| 南投县| 木兰县| 正宁县| 连平县| 海城市| 凌云县| 会宁县| 遂川县| 宜阳县| 海晏县| 桑日县| 梅州市| 湖口县| 舒城县| 临漳县| 手机| 江安县| 原阳县| 邢台县| 珠海市| 丰宁| 安康市| 乾安县| 礼泉县| 沽源县| 日喀则市| 祁门县| 凤山县| 西乡县| 庆城县| 肃南| 和顺县| 永州市| 青岛市|