Example usage for org.jfree.chart.axis SubCategoryAxis setTickLabelsVisible

List of usage examples for org.jfree.chart.axis SubCategoryAxis setTickLabelsVisible

Introduction

In this page you can find the example usage for org.jfree.chart.axis SubCategoryAxis setTickLabelsVisible.

Prototype

public void setTickLabelsVisible(boolean flag) 

Source Link

Document

Sets the flag that determines whether or not the tick labels are visible and sends an AxisChangeEvent to all registered listeners.

Usage

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  ww . j  a v a 2  s.co 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);
}