public String generatePieChart(
      String hitOrdNum, HttpSession session, PrintWriter pw, String courseId, int studentId) {
    /* int groupId=0;
                if (groupName.equals("All")){
                    groupId=0;
                }else{
                     groupId = studStatisticBean.getGroupIdByName(groupName);
    }*/
    String filename = null;
    try {
      //  Retrieve list of WebHits
      StudentsConceptChartDataSet whDataSet =
          new StudentsConceptChartDataSet(studStatisticBean, courseId, studentId);
      ArrayList list = whDataSet.getDataBySection(hitOrdNum);

      //  Throw a custom NoDataException if there is no data
      if (list.size() == 0) {
        System.out.println("No data has been found");
        throw new NoDataException();
      }

      //  Create and populate a PieDataSet
      DefaultPieDataset data = new DefaultPieDataset();
      Iterator iter = list.listIterator();
      while (iter.hasNext()) {
        StudentsConceptHit wh = (StudentsConceptHit) iter.next();
        data.setValue(wh.getSection(), wh.getHitDegree());
      }

      //  Create the chart object
      PiePlot plot = new PiePlot(data);
      plot.setInsets(new Insets(0, 5, 5, 5));
      plot.setURLGenerator(new StandardPieURLGenerator("xy_chart.jsp", "section"));
      plot.setToolTipGenerator(new StandardPieItemLabelGenerator());
      JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
      chart.setBackgroundPaint(java.awt.Color.white);

      //  Write the chart image to the temporary directory
      ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
      filename = ServletUtilities.saveChartAsPNG(chart, 600, 400, info, session);

      //  Write the image map to the PrintWriter
      ChartUtilities.writeImageMap(pw, filename, info);
      pw.flush();

    } catch (NoDataException e) {
      System.out.println(e.toString());
      filename = "public_nodata_500x300.png";
    } catch (Exception e) {
      System.out.println("Exception - " + e.toString());
      e.printStackTrace(System.out);
      filename = "public_error_500x300.png";
    }

    return filename;
  }
Beispiel #2
0
  /** Test the equals() method. */
  @Test
  public void testEquals() {
    PiePlot plot1 = new PiePlot();
    PiePlot plot2 = new PiePlot();
    assertEquals(plot1, plot2);
    assertEquals(plot2, plot1);

    // pieIndex...
    plot1.setPieIndex(99);
    assertFalse(plot1.equals(plot2));
    plot2.setPieIndex(99);
    assertEquals(plot1, plot2);

    // interiorGap...
    plot1.setInteriorGap(0.15);
    assertFalse(plot1.equals(plot2));
    plot2.setInteriorGap(0.15);
    assertEquals(plot1, plot2);

    // circular
    plot1.setCircular(!plot1.isCircular());
    assertFalse(plot1.equals(plot2));
    plot2.setCircular(false);
    assertEquals(plot1, plot2);

    // startAngle
    plot1.setStartAngle(Math.PI);
    assertFalse(plot1.equals(plot2));
    plot2.setStartAngle(Math.PI);
    assertEquals(plot1, plot2);

    // direction
    plot1.setDirection(Rotation.ANTICLOCKWISE);
    assertFalse(plot1.equals(plot2));
    plot2.setDirection(Rotation.ANTICLOCKWISE);
    assertEquals(plot1, plot2);

    // ignoreZeroValues
    plot1.setIgnoreZeroValues(true);
    plot2.setIgnoreZeroValues(false);
    assertFalse(plot1.equals(plot2));
    plot2.setIgnoreZeroValues(true);
    assertEquals(plot1, plot2);

    // ignoreNullValues
    plot1.setIgnoreNullValues(true);
    plot2.setIgnoreNullValues(false);
    assertFalse(plot1.equals(plot2));
    plot2.setIgnoreNullValues(true);
    assertEquals(plot1, plot2);

    // sectionPaintMap
    plot1.setSectionPaint("A", new GradientPaint(1.0f, 2.0f, Color.BLUE, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setSectionPaint("A", new GradientPaint(1.0f, 2.0f, Color.BLUE, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // baseSectionPaint
    plot1.setBaseSectionPaint(new GradientPaint(1.0f, 2.0f, Color.BLACK, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setBaseSectionPaint(new GradientPaint(1.0f, 2.0f, Color.BLACK, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // sectionOutlinesVisible
    plot1.setSectionOutlinesVisible(false);
    assertFalse(plot1.equals(plot2));
    plot2.setSectionOutlinesVisible(false);
    assertEquals(plot1, plot2);

    // sectionOutlinePaintList
    plot1.setSectionOutlinePaint(
        "A", new GradientPaint(1.0f, 2.0f, Color.green, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setSectionOutlinePaint(
        "A", new GradientPaint(1.0f, 2.0f, Color.green, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // baseSectionOutlinePaint
    plot1.setBaseSectionOutlinePaint(
        new GradientPaint(1.0f, 2.0f, Color.gray, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setBaseSectionOutlinePaint(
        new GradientPaint(1.0f, 2.0f, Color.gray, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // sectionOutlineStrokeList
    plot1.setSectionOutlineStroke("A", new BasicStroke(1.0f));
    assertFalse(plot1.equals(plot2));
    plot2.setSectionOutlineStroke("A", new BasicStroke(1.0f));
    assertEquals(plot1, plot2);

    // baseSectionOutlineStroke
    plot1.setBaseSectionOutlineStroke(new BasicStroke(1.0f));
    assertFalse(plot1.equals(plot2));
    plot2.setBaseSectionOutlineStroke(new BasicStroke(1.0f));
    assertEquals(plot1, plot2);

    // shadowPaint
    plot1.setShadowPaint(new GradientPaint(1.0f, 2.0f, Color.orange, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setShadowPaint(new GradientPaint(1.0f, 2.0f, Color.orange, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // shadowXOffset
    plot1.setShadowXOffset(4.4);
    assertFalse(plot1.equals(plot2));
    plot2.setShadowXOffset(4.4);
    assertEquals(plot1, plot2);

    // shadowYOffset
    plot1.setShadowYOffset(4.4);
    assertFalse(plot1.equals(plot2));
    plot2.setShadowYOffset(4.4);
    assertEquals(plot1, plot2);

    // labelFont
    plot1.setLabelFont(new Font("Serif", Font.PLAIN, 18));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelFont(new Font("Serif", Font.PLAIN, 18));
    assertEquals(plot1, plot2);

    // labelPaint
    plot1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.darkGray, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.darkGray, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // labelBackgroundPaint
    plot1.setLabelBackgroundPaint(
        new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelBackgroundPaint(
        new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // labelOutlinePaint
    plot1.setLabelOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // labelOutlineStroke
    Stroke s = new BasicStroke(1.1f);
    plot1.setLabelOutlineStroke(s);
    assertFalse(plot1.equals(plot2));
    plot2.setLabelOutlineStroke(s);
    assertEquals(plot1, plot2);

    // labelShadowPaint
    plot1.setLabelShadowPaint(new GradientPaint(1.0f, 2.0f, Color.yellow, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelShadowPaint(new GradientPaint(1.0f, 2.0f, Color.yellow, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // explodePercentages
    plot1.setExplodePercent("A", 0.33);
    assertFalse(plot1.equals(plot2));
    plot2.setExplodePercent("A", 0.33);
    assertEquals(plot1, plot2);

    // labelGenerator
    plot1.setLabelGenerator(new StandardPieSectionLabelGenerator("{2}{1}{0}"));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelGenerator(new StandardPieSectionLabelGenerator("{2}{1}{0}"));
    assertEquals(plot1, plot2);

    // labelFont
    Font f = new Font("SansSerif", Font.PLAIN, 20);
    plot1.setLabelFont(f);
    assertFalse(plot1.equals(plot2));
    plot2.setLabelFont(f);
    assertEquals(plot1, plot2);

    // labelPaint
    plot1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.magenta, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.magenta, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // maximumLabelWidth
    plot1.setMaximumLabelWidth(0.33);
    assertFalse(plot1.equals(plot2));
    plot2.setMaximumLabelWidth(0.33);
    assertEquals(plot1, plot2);

    // labelGap
    plot1.setLabelGap(0.11);
    assertFalse(plot1.equals(plot2));
    plot2.setLabelGap(0.11);
    assertEquals(plot1, plot2);

    // links visible
    plot1.setLabelLinksVisible(false);
    assertFalse(plot1.equals(plot2));
    plot2.setLabelLinksVisible(false);
    assertEquals(plot1, plot2);

    plot1.setLabelLinkStyle(PieLabelLinkStyle.QUAD_CURVE);
    assertFalse(plot1.equals(plot2));
    plot2.setLabelLinkStyle(PieLabelLinkStyle.QUAD_CURVE);
    assertEquals(plot1, plot2);

    // linkMargin
    plot1.setLabelLinkMargin(0.11);
    assertFalse(plot1.equals(plot2));
    plot2.setLabelLinkMargin(0.11);
    assertEquals(plot1, plot2);

    // labelLinkPaint
    plot1.setLabelLinkPaint(new GradientPaint(1.0f, 2.0f, Color.magenta, 3.0f, 4.0f, Color.WHITE));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelLinkPaint(new GradientPaint(1.0f, 2.0f, Color.magenta, 3.0f, 4.0f, Color.WHITE));
    assertEquals(plot1, plot2);

    // labelLinkStroke
    plot1.setLabelLinkStroke(new BasicStroke(1.0f));
    assertFalse(plot1.equals(plot2));
    plot2.setLabelLinkStroke(new BasicStroke(1.0f));
    assertEquals(plot1, plot2);

    // toolTipGenerator
    plot1.setToolTipGenerator(new StandardPieToolTipGenerator("{2}{1}{0}"));
    assertFalse(plot1.equals(plot2));
    plot2.setToolTipGenerator(new StandardPieToolTipGenerator("{2}{1}{0}"));
    assertEquals(plot1, plot2);

    // urlGenerator
    plot1.setURLGenerator(new StandardPieURLGenerator("xx"));
    assertFalse(plot1.equals(plot2));
    plot2.setURLGenerator(new StandardPieURLGenerator("xx"));
    assertEquals(plot1, plot2);

    // minimumArcAngleToDraw
    plot1.setMinimumArcAngleToDraw(1.0);
    assertFalse(plot1.equals(plot2));
    plot2.setMinimumArcAngleToDraw(1.0);
    assertEquals(plot1, plot2);

    // legendItemShape
    plot1.setLegendItemShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
    assertFalse(plot1.equals(plot2));
    plot2.setLegendItemShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
    assertEquals(plot1, plot2);

    // legendLabelGenerator
    plot1.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0} --> {1}"));
    assertFalse(plot1.equals(plot2));
    plot2.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0} --> {1}"));
    assertEquals(plot1, plot2);

    // legendLabelToolTipGenerator
    plot1.setLegendLabelToolTipGenerator(new StandardPieSectionLabelGenerator("{0} is {1}"));
    assertFalse(plot1.equals(plot2));
    plot2.setLegendLabelToolTipGenerator(new StandardPieSectionLabelGenerator("{0} is {1}"));
    assertEquals(plot1, plot2);

    // legendLabelURLGenerator
    plot1.setLegendLabelURLGenerator(new StandardPieURLGenerator("index.html"));
    assertFalse(plot1.equals(plot2));
    plot2.setLegendLabelURLGenerator(new StandardPieURLGenerator("index.html"));
    assertEquals(plot1, plot2);

    // autoPopulateSectionPaint
    plot1.setAutoPopulateSectionPaint(false);
    assertFalse(plot1.equals(plot2));
    plot2.setAutoPopulateSectionPaint(false);
    assertEquals(plot1, plot2);

    // autoPopulateSectionOutlinePaint
    plot1.setAutoPopulateSectionOutlinePaint(true);
    assertFalse(plot1.equals(plot2));
    plot2.setAutoPopulateSectionOutlinePaint(true);
    assertEquals(plot1, plot2);

    // autoPopulateSectionOutlineStroke
    plot1.setAutoPopulateSectionOutlineStroke(true);
    assertFalse(plot1.equals(plot2));
    plot2.setAutoPopulateSectionOutlineStroke(true);
    assertEquals(plot1, plot2);

    // shadowGenerator
    plot1.setShadowGenerator(new DefaultShadowGenerator(5, Color.gray, 0.6f, 4, -Math.PI / 4));
    assertFalse(plot1.equals(plot2));
    plot2.setShadowGenerator(new DefaultShadowGenerator(5, Color.gray, 0.6f, 4, -Math.PI / 4));
    assertEquals(plot1, plot2);

    plot1.setShadowGenerator(null);
    assertFalse(plot1.equals(plot2));
    plot2.setShadowGenerator(null);
    assertEquals(plot1, plot2);
  }