📄 starschartservlet.java
字号:
/* * StarsChartServlet.java * * Created on January 27, 2002, 8:03 PM */package org.impact.stars.control.web.outputs;import javax.servlet.*;import javax.servlet.http.*;import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import java.awt.image.*;import java.io.*;import java.util.*;import javax.swing.*;import com.sun.image.codec.jpeg.*;import com.jrefinery.chart.*;import com.jrefinery.chart.data.*;import com.jrefinery.chart.ui.*;import com.jrefinery.data.*;import com.jrefinery.ui.*;import org.impact.stars.control.web.*;import org.impact.stars.perspectivemd.review.model.ReviewModel;import org.impact.stars.util.*;import org.impact.stars.control.exceptions.StarsAppException;import org.impact.stars.perspectivemd.review.ejb.ReviewLocal;import org.impact.stars.perspectivemd.review.ejb.ReviewLocalHome;/** * * @author cai * @version */public class StarsChartServlet extends HttpServlet { /** Initializes the servlet. */ ChartGenerator cg; private ReviewLocalHome pEjbLH; public void init(ServletConfig config) throws ServletException { super.init(config); cg = new ChartGenerator(); try { getReviewLocalHome(); } catch (Exception ex) { Debug.println(ex.toString()); } } /** Destroys the servlet. */ public void destroy() { } /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { response.setContentType("image/jpeg"); int type = 1; try { type = Integer.parseInt(request.getParameter( "type" )); } catch (Exception e) { } int initGradColor= 0; int finalGradColor= 0; try { initGradColor = Integer.parseInt( request.getParameter( "initGradColor" ) ); finalGradColor = Integer.parseInt( request.getParameter( "finalGradColor" ) ); } catch (Exception e) { } Number[][] cnumber = new Integer[][] { { new Integer(0), new Integer(0), new Integer(0), new Integer(0)}, { new Integer(0), new Integer(0), new Integer(0), new Integer(0)}, { new Integer(0), new Integer(0), new Integer(0), new Integer(0)}, { new Integer(0), new Integer(0), new Integer(0), new Integer(0)}, { new Integer(0), new Integer(0), new Integer(0), new Integer(0)} }; Vector reviewvector = null; try { reviewvector = new Vector(); // collectVector(reviewvector, pEjbLH.findByReviewerID("s1")); collectVector(reviewvector, pEjbLH.findAll("all")); } catch (javax.ejb.FinderException fde) { Debug.println(fde.toString()); } catch (javax.ejb.NoSuchEntityException nee) { Debug.println(nee.toString()); } if (reviewvector !=null) { Iterator it = reviewvector.iterator(); while (it.hasNext()) { ReviewModel rm = (ReviewModel)it.next(); String cratio = rm.getConflictRatio(); float cr = Float.parseFloat(cratio); int cgroup = groupConflict(rm.getConceptID()); java.sql.Date rd= rm.getReviewtime(); Calendar cdl = Calendar.getInstance(); cdl.setTime(rd); int month = cdl.get(Calendar.MONTH); Debug.println("StarsChartServlet: month " + month + " conflict: " + cr +" group" + cgroup); if ((cr>0.5)&& (month<4)) { int current = ((Integer)cnumber[cgroup][month]).intValue(); cnumber[cgroup][month] = (Number)(new Integer(current+1)); } } } /* String[] names = new String[] {"Technical Decision", "Social Interaction", "Product", "Organization", "Other"}; //cds.setSeriesNames(names); String[] cate = new String[] {"Jan", "Feb", "Mar", "April"}; //cds.setCategories(cate); DefaultCategoryDataset cds = new DefaultCategoryDataset(names, cate, cnumber); */ DefaultCategoryDataset cds = new DefaultCategoryDataset(cnumber); if(cds==null) { Debug.println("StarsChartServlet Error: CategoryDataset is null"); } cg.setCategoryDataset(cds); cg.setChartTitle("Conflict Ratio"); cg.setXmark("Time"); cg.setYmark("Intensity"); JFreeChart chart = null; try{ chart = cg.createChart( type, initGradColor, finalGradColor ); } catch (Exception ex) { Debug.println(ex.toString()); } if(chart==null) { Debug.println("StarsChartServlet Error: chart is null"); } int width = 700; int height = 500; try { width = Integer.parseInt( request.getParameter( "width" ) ); height = Integer.parseInt( request.getParameter( "height" ) ); } catch (Exception e) { } OutputStream out = response.getOutputStream(); ChartUtilities.writeChartAsJPEG(out, chart, width, height); out.close(); } /** Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); } /** Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); } /** Returns a short description of the servlet. */ public String getServletInfo() { return "Short description"; } private void getReviewLocalHome() throws StarsAppException{ if (pEjbLH == null) { //perspectiveEjb = mm.getReviewEJB(); try { ReviewLocalHome phome = EJBUtil.getReviewLocalHome(); pEjbLH = phome; } catch (javax.naming.NamingException nme) { Debug.println("ConceptWebImpl naming exception: "); throw new StarsAppException("Irrecoverable error while updating perspective : "); } } } private void collectVector(Vector vector, Collection pclt) { if (pclt != null) { Iterator itr = pclt.iterator(); while (itr.hasNext()) { ReviewLocal pe = (ReviewLocal)itr.next(); ReviewModel pml = new ReviewModel(pe.getReviewID(), pe.getPerspectiveID(), pe.getConceptID(), pe.getReviewerID(), pe.getReviewtime(), pe.getConflictRatio(), pe.getRpurpose(), pe.getRcontext(), pe.getRcontent(), pe.getOverall()); vector.add(pml); } } else { Debug.println("ReadReviewListServlet: Return null by query"); } } public int groupConflict(String conceptID) { int concept = Integer.parseInt(conceptID); if ((concept<=5)&&(concept>1)) { return concept-2; } else { return 4; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -