Example usage for org.jfree.data.general DefaultPieDataset getValue

List of usage examples for org.jfree.data.general DefaultPieDataset getValue

Introduction

In this page you can find the example usage for org.jfree.data.general DefaultPieDataset getValue.

Prototype

@Override
public Number getValue(Comparable key) 

Source Link

Document

Returns the data value associated with a key.

Usage

From source file:com.pureinfo.srm.reports.impl.PieChartBuilder.java

private void fillChartInfo(DefaultPieDataset _dataset) {
    int n = _dataset.getItemCount();
    m_ChartInfo = new ChartInfo();
    m_ChartInfo.setChartTitle(m_sTitle);
    NumberFormat format = NumberFormat.getNumberInstance();
    String[] labels = new String[n];
    for (int i = 0; i < n; i++) {
        labels[i] = "" + _dataset.getKey(i);
        labels[i] += " = ";
        labels[i] += format.format(_dataset.getValue(i));
        double totalValue = DatasetUtilities.calculatePieDatasetTotal(_dataset);
        if (totalValue != 0) {
            labels[i] += "  ";
            labels[i] += PERCENT_NUMBER_FORMAT.format(_dataset.getValue(i).doubleValue() / totalValue);
        }/*  w  ww .j  a v a 2s  .com*/
    }
    m_ChartInfo.setLabels(labels);
    m_ChartInfo.setShowBoder(true);
    m_ChartInfo.setChartSize(ChartInfo.SIZE_WIDE_AND_THIN);
    m_ChartInfo.setLengedPosition(ChartInfo.LENGEND_POSITION_BUTTOM);
}

From source file:com.ikon.servlet.admin.StatsGraphServlet.java

/**
 * Convert a piechartdata to xml/* w  ww .  j  av a  2  s.  com*/
 * 
 * @author puspendu.banerjee@gmail.com 
 */
public String repoStatsXML(final String title, final DefaultPieDataset dataset)
        throws IOException, ServletException {
    Document document = DocumentHelper.createDocument();
    Element root = document.addElement("RepoStats");
    root.addElement("Title").addCDATA(title);
    Element dataSetElement = root.addElement("DataSet");

    for (int i = 0; i < dataset.getItemCount(); i++) {
        Element itemElement = dataSetElement.addElement("Item");
        itemElement.addElement("name").addCDATA(dataset.getKey(i).toString());
        itemElement.addAttribute("percent", dataset.getValue(i).toString());
        dataSetElement.add(itemElement);
    }

    return document.asXML();
}

From source file:uk.ac.lkl.cram.ui.report.Report.java

private void addLearningTypes() {
    MainDocumentPart mdp = wordMLPackage.getMainDocumentPart();
    mdp.addStyledParagraphOfText("Heading1", "Learning Types");
    LearningTypeChartMaker maker = new LearningTypeChartMaker(module);
    JFreeChart chart = maker.getChartPanel().getChart();
    DefaultPieDataset dataset = (DefaultPieDataset) maker.getDataset();
    Tbl table = factory.createTbl();/* ww w. j av  a2s  .c om*/
    double total = 0f;
    for (Object key : dataset.getKeys()) {
        total += (Double) dataset.getValue((Comparable) key);
    }
    boolean first = true;
    for (Object key : dataset.getKeys()) {
        Tr tableRow = factory.createTr();
        Tc tableCell = factory.createTc();
        TcPr tcpr = factory.createTcPr();
        tableCell.setTcPr(tcpr);
        VMerge vMerge = factory.createTcPrInnerVMerge();
        tcpr.setVMerge(vMerge);
        if (first) {
            vMerge.setVal("restart");
            /* Specify the height and width of the Pie Chart */
            int width = (int) (480f * 0.9f); /* Width of the chart */
            int height = (int) (360f * 0.9f); /* Height of the chart */
            tableCell.getContent().add(createChart(chart, width, height));
            first = false;
        } else {
            tableCell.getContent().add(factory.createP());
        }
        tableRow.getContent().add(tableCell);
        double percent = (Double) dataset.getValue((Comparable) key) / total;
        addSimpleTableCell(tableRow, key.toString());
        addTableCell(tableRow, PERCENT_FORMATTER.format(percent), JcEnumeration.RIGHT, false);
        table.getContent().add(tableRow);
    }
    addBorders(table);
    mdp.addObject(table);
}

From source file:org.sakaiproject.sitestats.impl.chart.ChartServiceImpl.java

private AbstractDataset getPieDataset(Report report) {
    List<Stat> reportData = report.getReportData();

    // fill dataset
    DefaultPieDataset dataSet = new DefaultPieDataset();
    String dataSource = report.getReportDefinition().getReportParams().getHowChartSource();
    //int total = 0;
    double total = 0;
    for (Stat s : reportData) {
        Comparable key = getStatValue(s, dataSource);
        if (key != null) {
            try {
                Number existingValue = dataSet.getValue(key);
                dataSet.setValue(key, getTotalValue(existingValue, s, report));
                total += getTotalValue(s, report).doubleValue();
            } catch (UnknownKeyException e) {
                dataSet.setValue(key, getTotalValue(s, report));
                total += getTotalValue(s, report).doubleValue();
            }/*from   w  w  w . j a  v a 2 s  .co  m*/
        }
    }

    // sort
    dataSet.sortByValues(SortOrder.DESCENDING);

    // fill in final key values in dataset
    // show only top values (aggregate remaining in 'others')
    int maxDisplayedItems = 10;
    int currItem = 1;
    Number othersValues = Integer.valueOf(0);
    List<Comparable> keys = dataSet.getKeys();
    for (Comparable key : keys) {
        Number existingValue = dataSet.getValue(key);
        if (currItem < maxDisplayedItems) {
            // re-compute values
            double percentage = (double) existingValue.doubleValue() * 100 / total;
            double valuePercentage = Util.round(percentage, (percentage > 0.1) ? 1 : 2);
            // replace key with updated label
            StringBuilder keyStr = new StringBuilder(key.toString());
            keyStr.append(' ');
            keyStr.append(valuePercentage);
            keyStr.append("% (");
            if ((double) existingValue.intValue() == existingValue.doubleValue())
                keyStr.append(existingValue.intValue());
            else
                keyStr.append(existingValue.doubleValue());
            keyStr.append(")");
            dataSet.remove(key);
            dataSet.setValue(keyStr.toString(), existingValue);
        } else {
            othersValues = Integer.valueOf(othersValues.intValue() + existingValue.intValue());
            dataSet.remove(key);
        }
        currItem++;
    }
    // compute "Others" value
    if (othersValues.intValue() > 0) {
        double percentage = (double) othersValues.doubleValue() * 100 / total;
        double valuePercentage = Util.round(percentage, (percentage > 0.1) ? 1 : 2);
        // replace key with updated label
        StringBuilder keyStr = new StringBuilder(msgs.getString("pie_chart_others"));
        keyStr.append(' ');
        keyStr.append(valuePercentage);
        keyStr.append("% (");
        if ((double) othersValues.intValue() == othersValues.doubleValue())
            keyStr.append(othersValues.intValue());
        else
            keyStr.append(othersValues.doubleValue());
        keyStr.append(")");
        dataSet.setValue(keyStr.toString(), othersValues);
    }

    return dataSet;
}