Example usage for org.jfree.data.category CategoryDataset getRowKey

List of usage examples for org.jfree.data.category CategoryDataset getRowKey

Introduction

In this page you can find the example usage for org.jfree.data.category CategoryDataset getRowKey.

Prototype

public Comparable getRowKey(int row);

Source Link

Document

Returns the row key for a given index.

Usage

From source file:it.eng.spagobi.engines.chart.bo.charttypes.utils.MyStandardCategoryItemLabelGenerator.java

public String generateLabel(CategoryDataset dataset, int row, int column) {
    logger.debug("IN");
    String category = (String) dataset.getColumnKey(column);
    String serie = (String) dataset.getRowKey(row);

    String index = category + "-" + serie;

    String value = "";
    if (catSerLabel.get(index) != null && !catSerLabel.get(index).equals("")) {
        logger.debug("set label");
        value = (String) catSerLabel.get(index);
    }//from  w ww. j  a v a 2  s  . c  o  m

    logger.debug("OUT");

    return value;
}

From source file:com.newatlanta.bluedragon.CategoryItemLabelGenerator.java

protected Object[] createItemArray(CategoryDataset dataset, int row, int column) {
    Object[] result = new Object[5];
    result[0] = dataset.getRowKey(row).toString();
    result[1] = dataset.getColumnKey(column).toString();
    Number value = dataset.getValue(row, column);
    if (value != null) {
        if (yAxisSymbols != null) {
            int intValue = value.intValue();
            if (intValue < yAxisSymbols.length)
                result[2] = yAxisSymbols[intValue];
            else//from   www  .j  ava 2  s.c  o m
                result[2] = "???";
        } else if (this.getNumberFormat() != null) {
            result[2] = this.getNumberFormat().format(value);
        } else if (this.getDateFormat() != null) {
            result[2] = this.getDateFormat().format(value);
        }
    } else {
        result[2] = "-"; // this.nullValueString;
    }

    if (value != null) {
        double total = DataUtilities.calculateRowTotal(dataset, row);
        double percent = value.doubleValue() / total;
        result[3] = NumberFormat.getPercentInstance().format(percent);
        if (this.getNumberFormat() != null) {
            result[4] = this.getNumberFormat().format(total);
        } else if (this.getDateFormat() != null) {
            // result[4] = this.getDateFormat().format(total);
        }
    }

    return result;
}

From source file:com.googlecode.logVisualizer.chart.ConsumptionBarChart.java

@Override
protected ChartPanel createChartPanel() {
    final ChartPanel panel = super.createChartPanel();
    final CategoryPlot plot = (CategoryPlot) panel.getChart().getPlot();
    final StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
    final CategoryDataset dataset = plot.getDataset();

    for (int i = 0; i < dataset.getRowCount(); i++)
        if (dataset.getRowKey(i).equals("Food"))
            renderer.setSeriesPaint(i, new Color(255, 80, 80));
        else if (dataset.getRowKey(i).equals("Booze"))
            renderer.setSeriesPaint(i, new Color(100, 100, 255));
        else if (dataset.getRowKey(i).equals("Spleen"))
            renderer.setSeriesPaint(i, new Color(80, 255, 80));
        else if (dataset.getRowKey(i).equals("Other"))
            renderer.setSeriesPaint(i, Color.LIGHT_GRAY);

    return panel;
}

From source file:com.newatlanta.bluedragon.CategoryURLGenerator.java

/**
 * Generates a URL for a particular item within a series.
 * /*w ww  .j  ava  2 s .c o m*/
 * @param dataset
 *          the dataset.
 * @param series
 *          the series index (zero-based).
 * @param category
 *          the category index (zero-based).
 * 
 * @return The generated URL.
 */
@SuppressWarnings("deprecation")
public String generateURL(CategoryDataset dataset, int series, int category) {
    String seriesKey = dataset.getRowKey(series).toString();
    String categoryKey = dataset.getColumnKey(category).toString();
    Number numberValue = dataset.getValue(series, category);
    String value;
    if (numberValue == null)
        value = "";
    else if (dateFormat != null)
        value = this.dateFormat.format(numberValue);
    else
        value = this.numberFormat.format(numberValue);

    StringBuilder generatedURL = new StringBuilder(urlLower.length());
    for (int i = 0; i < urlLower.length();) {
        char ch = urlLower.charAt(i);
        if (ch == '$') {
            if (urlLower.regionMatches(i, "$serieslabel$", 0, "$serieslabel$".length())) {
                generatedURL.append(URLEncoder.encode(seriesKey));
                i = i + "$serieslabel$".length();
            } else if (urlLower.regionMatches(i, "$itemlabel$", 0, "$itemlabel$".length())) {
                generatedURL.append(URLEncoder.encode(categoryKey));
                i = i + "$itemlabel$".length();
            } else if (urlLower.regionMatches(i, "$value$", 0, "$value$".length())) {
                generatedURL.append(URLEncoder.encode(value));
                i = i + "$value$".length();
            } else {
                // Preserve case by retrieving char from original URL
                generatedURL.append(url.charAt(i));
                i++;
            }
        } else {
            // Preserve case by retrieving char from original URL
            generatedURL.append(url.charAt(i));
            i++;
        }
    }
    return generatedURL.toString();
}

From source file:net.sf.dynamicreports.test.jasper.chart.ChartSeriesColorsByNameTest.java

@Override
public void test() {
    super.test();

    numberOfPagesTest(1);/*w w w . ja v a  2s.  c o m*/

    chartCountTest("summary.chart1", 1);
    JFreeChart chart = getChart("summary.chart1", 0);
    CategoryItemRenderer renderer1 = chart.getCategoryPlot().getRenderer();
    CategoryDataset dataset1 = chart.getCategoryPlot().getDataset();
    for (int i = 0; i < dataset1.getRowCount(); i++) {
        String key = (String) dataset1.getRowKey(i);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), renderer1.getSeriesPaint(i));
    }

    chartCountTest("summary.chart2", 1);
    chart = getChart("summary.chart2", 0);
    CategoryItemRenderer renderer2 = chart.getCategoryPlot().getRenderer();
    CategoryDataset dataset2 = chart.getCategoryPlot().getDataset();
    for (int i = 0; i < dataset2.getRowCount(); i++) {
        String key = (String) dataset2.getRowKey(i);
        key = StringUtils.substringAfter(key, GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), renderer2.getSeriesPaint(i));
    }
    for (int i = 0; i < chart.getCategoryPlot().getFixedLegendItems().getItemCount(); i++) {
        LegendItem legendItem = chart.getCategoryPlot().getFixedLegendItems().get(i);
        Assert.assertNotNull("null series color", colors.get(legendItem.getLabel()));
        Assert.assertEquals("series color", colors.get(legendItem.getLabel()), legendItem.getFillPaint());
    }

    chartCountTest("summary.chart3", 1);
    chart = getChart("summary.chart3", 0);
    PiePlot plot3 = (PiePlot) chart.getPlot();
    PieDataset dataset3 = plot3.getDataset();
    for (int i = 0; i < dataset3.getItemCount(); i++) {
        String key = (String) dataset3.getKey(i);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), plot3.getSectionPaint(key));
    }

    chartCountTest("summary.chart4", 1);
    chart = getChart("summary.chart4", 0);
    XYItemRenderer renderer4 = chart.getXYPlot().getRenderer();
    XYDataset dataset4 = chart.getXYPlot().getDataset();
    for (int i = 0; i < dataset4.getSeriesCount(); i++) {
        String key = (String) dataset4.getSeriesKey(i);
        Assert.assertNotNull("null series color", colors.get(key));
        Assert.assertEquals("series color", colors.get(key), renderer4.getSeriesPaint(i));
    }
}

From source file:org.xwiki.rendering.internal.macro.chart.source.table.TableCategoryDatasetBuilderTest.java

@Test
public void testBuildCategoryDatasetColumnsSeries() throws Exception {
    String content = "| column 1 | column 2 | column 3 | column 4\n" + "| row 1 | 12 | 13 | 14 \n"
            + "| row 2 | 22 | 23 | 24 \n";
    setUpContentExpectation(content);//from   ww w . j a v  a 2 s  .  c  om

    getDataSource().buildDataset(content, map("type", "line", "range", "B2-D3", "series", "columns"), null);

    ChartModel chartModel = getDataSource().getChartModel();

    Dataset dataset = chartModel.getDataset();

    Assert.assertTrue(dataset instanceof CategoryDataset);
    Assert.assertTrue(chartModel.getAxis(0) instanceof CategoryAxis);
    Assert.assertTrue(chartModel.getAxis(1) instanceof ValueAxis);

    CategoryDataset categoryDataset = (CategoryDataset) dataset;

    Assert.assertTrue(categoryDataset.getColumnKey(0).equals(" row 1 "));
    Assert.assertTrue(categoryDataset.getColumnKey(1).equals(" row 2 "));

    Assert.assertTrue(categoryDataset.getRowKey(0).equals(" column 2 "));
    Assert.assertTrue(categoryDataset.getRowKey(1).equals(" column 3 "));
    Assert.assertTrue(categoryDataset.getRowKey(2).equals(" column 4"));

    Assert.assertTrue(categoryDataset.getValue(0, 0).intValue() == 12);
    Assert.assertTrue(categoryDataset.getValue(1, 0).intValue() == 13);
    Assert.assertTrue(categoryDataset.getValue(2, 0).intValue() == 14);
    Assert.assertTrue(categoryDataset.getValue(0, 1).intValue() == 22);
    Assert.assertTrue(categoryDataset.getValue(1, 1).intValue() == 23);
    Assert.assertTrue(categoryDataset.getValue(2, 1).intValue() == 24);
}

From source file:net.sf.dynamicreports.design.transformation.chartcustomizer.GroupedStackedBarRendererCustomizer.java

@Override
public void customize(JFreeChart chart, ReportParameters reportParameters) {
    this.seriesColors = new LinkedHashMap<String, Paint>();
    this.map = null;
    Set<String> groups = new LinkedHashSet<String>();
    CategoryDataset dataset = chart.getCategoryPlot().getDataset();

    for (int i = 0; i < dataset.getRowCount(); i++) {
        String rowKey = (String) dataset.getRowKey(i);
        String group = StringUtils.substringBefore(rowKey, GROUP_SERIES_KEY);
        String series = StringUtils.substringAfter(rowKey, GROUP_SERIES_KEY);
        if (map == null) {
            map = new KeyToGroupMap(group);
        }/*w  w  w  .  ja v a  2 s  . c  o  m*/
        map.mapKeyToGroup(rowKey, group);
        groups.add(group);
        if (!seriesColors.containsKey(series)) {
            Paint paint = chart.getCategoryPlot().getDrawingSupplier().getNextPaint();
            seriesColors.put(series, paint);
        }
    }

    DefaultCategoryDataset newDataset = new DefaultCategoryDataset();
    for (Object column : dataset.getColumnKeys()) {
        for (String group : groups) {
            for (String series : seriesColors.keySet()) {
                try {
                    Number value = dataset.getValue(group + GROUP_SERIES_KEY + series, (Comparable<?>) column);
                    newDataset.addValue(value, group + GROUP_SERIES_KEY + series, (Comparable<?>) column);
                } catch (UnknownKeyException e) {
                    newDataset.addValue(0, group + GROUP_SERIES_KEY + series, (Comparable<?>) column);
                }
            }

        }
    }
    dataset = newDataset;

    GroupedStackedBarRenderer renderer = new GroupedStackedBarRenderer();
    renderer.setSeriesToGroupMap(map);

    StackedBarRenderer categoryRenderer = (StackedBarRenderer) chart.getCategoryPlot().getRenderer();
    renderer.setBaseItemLabelsVisible(categoryRenderer.getBaseItemLabelsVisible());
    renderer.setBaseItemLabelFont(categoryRenderer.getBaseItemLabelFont());
    renderer.setBaseItemLabelPaint(categoryRenderer.getBaseItemLabelPaint());
    renderer.setBaseItemLabelGenerator(categoryRenderer.getBaseItemLabelGenerator());
    renderer.setShadowVisible(categoryRenderer.getShadowsVisible());

    renderer.setItemMargin(0.10);
    renderer.setDrawBarOutline(false);
    for (int i = 0; i < dataset.getRowCount(); i++) {
        String rowKey = (String) dataset.getRowKey(i);
        String score = StringUtils.substringAfter(rowKey, GROUP_SERIES_KEY);
        renderer.setSeriesPaint(i, seriesColors.get(score));
    }

    CategoryAxis domainAxis = chart.getCategoryPlot().getDomainAxis();
    SubCategoryAxis newDomainAxis = new SubCategoryAxis(domainAxis.getLabel());
    newDomainAxis.setLabelFont(domainAxis.getLabelFont());
    newDomainAxis.setTickLabelFont(domainAxis.getTickLabelFont());
    newDomainAxis.setLabelPaint(domainAxis.getLabelPaint());
    newDomainAxis.setTickLabelPaint(domainAxis.getTickLabelPaint());
    newDomainAxis.setAxisLinePaint(domainAxis.getAxisLinePaint());
    newDomainAxis.setTickMarkPaint(domainAxis.getTickMarkPaint());
    newDomainAxis.setTickLabelsVisible(domainAxis.isTickLabelsVisible());
    newDomainAxis.setTickMarksVisible(domainAxis.isTickMarksVisible());
    newDomainAxis.setCategoryMargin(0.05);
    for (String group : groups) {
        newDomainAxis.addSubCategory(group);
    }

    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    plot.setDomainAxis(newDomainAxis);
    plot.setRenderer(renderer);

    LegendItemCollection legendItems = new LegendItemCollection();
    for (String item : seriesColors.keySet()) {
        legendItems.add(new LegendItem(item, seriesColors.get(item)));
    }
    plot.setFixedLegendItems(legendItems);

    chart.getCategoryPlot().setDataset(dataset);
}

From source file:it.eng.spagobi.engines.chart.bo.charttypes.utils.MyCategoryToolTipGenerator.java

public String generateToolTip(CategoryDataset dataset, int row, int column) {
    logger.debug("IN");
    //String tooltip=super.generateToolTip(dataset, row, column);
    String rowName = "";
    String columnName = "";
    try {//from   w  w  w.  j  a v a2s .  co m
        Comparable rowNameC = (String) dataset.getRowKey(row);
        Comparable columnNameC = (String) dataset.getColumnKey(column);
        if (rowNameC != null)
            rowName = rowNameC.toString();
        if (columnNameC != null)
            columnName = columnNameC.toString();

    } catch (Exception e) {
        logger.error("error in recovering name of row and column");
        return "undef";
    }

    // check if there is a predefined FREETIP message
    if (enableFreeTip == true) {
        if (categoriesToolTips.get("FREETIP_X_" + columnName) != null) {
            String freeName = categoriesToolTips.get("FREETIP_X_" + columnName);
            return freeName;
        }
    }

    String columnTipName = columnName;
    String rowTipName = rowName;
    // check if tip name are defined, else use standard
    if (categoriesToolTips.get("TIP_X_" + columnName) != null) {
        columnTipName = categoriesToolTips.get("TIP_X_" + columnName);
    }
    // search for series, if seriesCaption has a relative value use it! 
    String serieNameToSearch = null;
    if (seriesCaption != null) {
        serieNameToSearch = seriesCaption.get(rowName);
    }
    if (serieNameToSearch == null)
        serieNameToSearch = rowName;

    if (serieToolTips.get("TIP_" + serieNameToSearch) != null) {
        rowTipName = serieToolTips.get("TIP_" + serieNameToSearch);
    }

    Number num = dataset.getValue(row, column);
    String numS = (num != null) ? " = " + num.toString() : "";
    String toReturn = "(" + columnTipName + ", " + rowTipName + ")" + numS;

    logger.debug("OUT");
    return toReturn;

}

From source file:net.sf.dynamicreports.design.transformation.chartcustomizer.SeriesColorsByNameCustomizer.java

@Override
public void customize(JFreeChart chart, ReportParameters reportParameters) {
    if (chart.getPlot() instanceof CategoryPlot) {
        CategoryItemRenderer renderer = chart.getCategoryPlot().getRenderer();
        CategoryDataset dataset = chart.getCategoryPlot().getDataset();
        Set<String> legend = new LinkedHashSet<String>();
        if (dataset != null) {
            for (int i = 0; i < dataset.getRowCount(); i++) {
                String key = (String) dataset.getRowKey(i);
                if (renderer instanceof GroupedStackedBarRenderer) {
                    key = StringUtils.substringAfter(key, GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY);
                    legend.add(key);//from  w  w w.  j  a  v  a2 s .  c  om
                }
                renderer.setSeriesPaint(i, seriesColorsByName.get(key));
            }
        }
        if (!legend.isEmpty()) {
            LegendItemCollection legendItems = new LegendItemCollection();
            for (String item : legend) {
                legendItems.add(new LegendItem(item, seriesColorsByName.get(item)));
            }
            chart.getCategoryPlot().setFixedLegendItems(legendItems);
        }
    } else if (chart.getPlot() instanceof PiePlot) {
        PiePlot plot = (PiePlot) chart.getPlot();
        PieDataset dataset = plot.getDataset();
        for (int i = 0; i < dataset.getItemCount(); i++) {
            String key = (String) dataset.getKey(i);
            plot.setSectionPaint(key, seriesColorsByName.get(key));
        }
    } else if (chart.getPlot() instanceof XYPlot) {
        XYItemRenderer renderer = chart.getXYPlot().getRenderer();
        XYDataset dataset = chart.getXYPlot().getDataset();
        for (int i = 0; i < dataset.getSeriesCount(); i++) {
            String key = (String) dataset.getSeriesKey(i);
            renderer.setSeriesPaint(i, seriesColorsByName.get(key));
        }
    }
}

From source file:net.sf.dynamicreports.test.jasper.chart.GroupedStackedBarChartData1Test.java

@Override
public void test() {
    super.test();

    numberOfPagesTest(1);//from w  w  w  .  j  a  va 2 s  .com

    String[] categories = new String[] { "value1", "value2" };
    String[] series = new String[] {
            "group1" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series1",
            "group1" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series2",
            "group2" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series1",
            "group2" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series2" };
    Number[][] values = new Number[][] { { 1d, 3d, 5d, 7d }, { 7d, 5d, 3d, 1d } };
    chartCountTest("summary.chart1", 1);
    chartCategoryCountTest("summary.chart1", 0, 2);
    chartSeriesCountTest("summary.chart1", 0, 4);
    chartDataTest("summary.chart1", 0, categories, series, values);

    values = new Number[][] { { 1d / 4 * 100, 3d / 4 * 100, 5d / 12 * 100, 7d / 12 * 100 },
            { 7d / 12 * 100, 5d / 12 * 100, 3d / 4 * 100, 1d / 4 * 100 } };
    chartCountTest("summary.chart3", 1);
    chartCategoryCountTest("summary.chart3", 0, 2);
    chartSeriesCountTest("summary.chart3", 0, 4);
    chartDataTest("summary.chart3", 0, categories, series, values);

    values = new Number[][] { { null, 3d, 5d, 7d }, { 7d, 5d, 3d, 1d } };
    chartCountTest("summary.chart5", 1);
    chartCategoryCountTest("summary.chart5", 0, 2);
    chartSeriesCountTest("summary.chart5", 0, 4);
    chartDataTest("summary.chart5", 0, categories, series, values);
    JFreeChart chart = getChart("summary.chart5", 0);
    CategoryDataset dataset = chart.getCategoryPlot().getDataset();
    Assert.assertEquals("row key", "group1" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series2",
            dataset.getRowKey(0));
    Assert.assertEquals("row key", "group1" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series1",
            dataset.getRowKey(1));
    Assert.assertEquals("row key", "group2" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "series2",
            dataset.getRowKey(2));

    series = new String[] { "group1" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "Column4",
            "group1" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "Column5",
            "group2" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "Column4",
            "group2" + GroupedStackedBarRendererCustomizer.GROUP_SERIES_KEY + "Column5" };
    values = new Number[][] { { 4d, 6d, 12d, 14d }, { 12d, 14d, 4d, 6d } };
    chartCountTest("summary.chart2", 1);
    chartCategoryCountTest("summary.chart2", 0, 2);
    chartSeriesCountTest("summary.chart2", 0, 4);
    chartDataTest("summary.chart2", 0, categories, series, values);

    values = new Number[][] { { 4d / 10 * 100, 6d / 10 * 100, 12d / 26 * 100, 14d / 26 * 100 },
            { 12d / 26 * 100, 14d / 26 * 100, 4d / 10 * 100, 6d / 10 * 100 } };
    chartCountTest("summary.chart4", 1);
    chartCategoryCountTest("summary.chart4", 0, 2);
    chartSeriesCountTest("summary.chart4", 0, 4);
    chartDataTest("summary.chart4", 0, categories, series, values);
}