Example usage for org.jfree.data.category DefaultCategoryDataset getRowKeys

List of usage examples for org.jfree.data.category DefaultCategoryDataset getRowKeys

Introduction

In this page you can find the example usage for org.jfree.data.category DefaultCategoryDataset getRowKeys.

Prototype

@Override
public List getRowKeys() 

Source Link

Document

Returns the row keys.

Usage

From source file:it.eng.spagobi.engines.chart.bo.charttypes.linecharts.LineChart.java

public JFreeChart createChart() {

    logger.debug("IN");
    CategoryPlot plot = new CategoryPlot();

    NumberAxis rangeAxis = new NumberAxis("Kpi Values");
    rangeAxis.setLabelFont(new Font("Arial", Font.PLAIN, 12));
    Color colorLabel = Color.decode("#000000");
    rangeAxis.setLabelPaint(colorLabel);
    rangeAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
    rangeAxis.setTickLabelPaint(colorLabel);
    plot.setRangeAxis(rangeAxis);/*from  w  ww.  j  a v a2 s. co m*/

    CategoryAxis domainAxis = new CategoryAxis();
    domainAxis.setLabelFont(new Font("Arial", Font.PLAIN, 10));
    domainAxis.setLabelPaint(colorLabel);
    domainAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
    domainAxis.setTickLabelPaint(colorLabel);
    plot.setDomainAxis(domainAxis);

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    //I create a line renderer 
    MyStandardCategoryItemLabelGenerator generator = null;

    LineAndShapeRenderer lineRenderer = new LineAndShapeRenderer();
    lineRenderer.setShapesFilled(true);
    lineRenderer.setBaseItemLabelGenerator(generator);
    lineRenderer.setBaseItemLabelFont(new Font("Arial", Font.PLAIN, 12));
    lineRenderer.setBaseItemLabelPaint(colorLabel);
    lineRenderer.setBaseItemLabelsVisible(true);

    DefaultCategoryDataset datasetLine = (DefaultCategoryDataset) datasetMap.getDatasets().get("line");

    for (Iterator iterator = datasetLine.getRowKeys().iterator(); iterator.hasNext();) {
        String serName = (String) iterator.next();
        String labelName = "";
        int index = -1;
        index = datasetLine.getRowIndex(serName);

        Color color = Color.decode("#990200");
        lineRenderer.setSeriesPaint(index, color);
    }

    plot.setDataset(0, datasetLine);
    plot.setRenderer(0, lineRenderer);

    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    JFreeChart chart = new JFreeChart(plot);
    logger.debug("Chart created");
    TextTitle title = new TextTitle(name, new Font("Arial", Font.BOLD, 16), Color.decode("#990200"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.setTitle(title);
    TextTitle subTitle = new TextTitle(subName, new Font("Arial", Font.PLAIN, 12), Color.decode("#000000"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.addSubtitle(subTitle);
    TextTitle subTitle2 = new TextTitle(subName, new Font("Arial", Font.PLAIN, 8), Color.decode("#FFFFFF"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.addSubtitle(subTitle2);
    chart.removeLegend();

    chart.setBackgroundPaint(Color.white);
    logger.debug("OUT");
    return chart;
}

From source file:it.eng.spagobi.engines.kpi.bo.charttypes.trendcharts.LineChart.java

public JFreeChart createChart() {

    logger.debug("IN");
    CategoryPlot plot = new CategoryPlot();
    IMessageBuilder msgBuilder = MessageBuilderFactory.getMessageBuilder();
    String rangeAxisName = msgBuilder.getMessage("sbi.kpi.rangeAxisName");
    NumberAxis rangeAxis = new NumberAxis(rangeAxisName);
    rangeAxis.setLabelFont(new Font("Arial", Font.PLAIN, 12));
    Color colorLabel = Color.decode("#000000");
    rangeAxis.setLabelPaint(colorLabel);
    rangeAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
    rangeAxis.setTickLabelPaint(colorLabel);
    plot.setRangeAxis(rangeAxis);/*from w  w w  . j  a v a 2 s .  c  o  m*/

    CategoryAxis domainAxis = new CategoryAxis();
    domainAxis.setLabelFont(new Font("Arial", Font.PLAIN, 10));
    domainAxis.setLabelPaint(colorLabel);
    domainAxis.setTickLabelFont(new Font("Arial", Font.PLAIN, 10));
    domainAxis.setTickLabelPaint(colorLabel);
    plot.setDomainAxis(domainAxis);

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    //I create a line renderer 
    MyStandardCategoryItemLabelGenerator generator = null;

    LineAndShapeRenderer lineRenderer = new LineAndShapeRenderer();
    lineRenderer.setShapesFilled(true);
    lineRenderer.setBaseItemLabelGenerator(generator);
    lineRenderer.setBaseItemLabelFont(new Font("Arial", Font.PLAIN, 12));
    lineRenderer.setBaseItemLabelPaint(colorLabel);
    lineRenderer.setBaseItemLabelsVisible(true);

    DefaultCategoryDataset datasetLine = (DefaultCategoryDataset) datasetMap.getDatasets().get("line");

    for (Iterator iterator = datasetLine.getRowKeys().iterator(); iterator.hasNext();) {
        String serName = (String) iterator.next();
        String labelName = "";
        int index = -1;
        index = datasetLine.getRowIndex(serName);

        Color color = Color.decode("#990200");
        lineRenderer.setSeriesPaint(index, color);
    }

    plot.setDataset(0, datasetLine);
    plot.setRenderer(0, lineRenderer);

    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    JFreeChart chart = new JFreeChart(plot);
    logger.debug("Chart created");
    TextTitle title = new TextTitle(name, new Font("Arial", Font.BOLD, 16), Color.decode("#990200"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.setTitle(title);
    TextTitle subTitle = new TextTitle(subName, new Font("Arial", Font.PLAIN, 12), Color.decode("#000000"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.addSubtitle(subTitle);
    TextTitle subTitle2 = new TextTitle(subName, new Font("Arial", Font.PLAIN, 8), Color.decode("#FFFFFF"),
            RectangleEdge.TOP, HorizontalAlignment.CENTER, VerticalAlignment.TOP, RectangleInsets.ZERO_INSETS);
    chart.addSubtitle(subTitle2);
    chart.removeLegend();

    chart.setBackgroundPaint(Color.white);
    logger.debug("OUT");
    return chart;
}

From source file:msi.gama.outputs.layers.charts.ChartJFreeChartOutputRadar.java

@Override
protected void resetSerie(final IScope scope, final String serieid) {
    // TODO Auto-generated method stub

    chart.getPlot();/*  w  w w  .  j  a v  a  2  s . c  o  m*/
    final ChartDataSeries dataserie = chartdataset.getDataSeries(scope, serieid);
    // DefaultCategoryDataset serie=((DefaultCategoryDataset)
    // jfreedataset.get(IdPosition.get(dataserie.getSerieId(scope))));
    final DefaultCategoryDataset serie = (DefaultCategoryDataset) jfreedataset.get(0);
    if (serie.getRowKeys().contains(serieid))
        serie.removeRow(serieid);
    final ArrayList<String> CValues = dataserie.getCValues(scope);
    final ArrayList<Double> YValues = dataserie.getYValues(scope);
    final ArrayList<Double> SValues = dataserie.getSValues(scope);
    if (CValues.size() > 0) {
        int deb = 0;
        if (this.usexrangeinterval && CValues.size() > this.xrangeinterval)
            deb = CValues.size() - (int) this.xrangeinterval;
        for (int i = deb; i < CValues.size(); i++) {
            serie.addValue(YValues.get(i), serieid, CValues.get(i - deb));
            // ((ExtendedCategoryAxis)domainAxis).addSubLabel(CValues.get(i),
            // serieid);;
        }
    }
    if (SValues.size() > 0) {
        // what to do with Z values??

    }

    this.resetRenderer(scope, serieid);

}

From source file:edu.uara.wrappers.customcharts.CustomBarChart.java

@Override
public void updateChart(CustomDatasetTable dsTable, ITableObject source) {
    if (ds != null)//
    {//from   ww  w  .  ja v  a 2  s. c  o  m
        TableOrder tableOrder = TableOrder.BY_ROW;
        DefaultCategoryDataset dataset = (DefaultCategoryDataset) ds;

        List rows = dataset.getRowKeys();
        List cols = dataset.getColumnKeys();

        String[] rowLabels = dsTable.getRowLabels();
        String[] columnLabels = dsTable.getColumnLabels(source);

        for (int i = 0; i < rows.size(); i++) {
            if (!rows.get(i).toString().equals(rowLabels)) {
                tableOrder = TableOrder.BY_COLUMN;
                break;
            }
        }

        if (tableOrder == TableOrder.BY_ROW) {
            double[][] values = dsTable.getTableContentAsValue(source);
            for (int r = 0; r < rowLabels.length; r++) {
                for (int c = 0; c < columnLabels.length; c++) {
                    dataset.setValue(values[r][c], rowLabels[r], columnLabels[c]);

                }
            }

        } else {
            double[][] values = dsTable.getTableContentAsValueTranspose(source);
            for (int r = 0; r < rows.size(); r++) {
                for (int c = 0; c < cols.size(); c++) {
                    dataset.setValue(values[r][c], rows.get(r).toString(), cols.get(c).toString());

                }
            }
        }
    }
}

From source file:msi.gama.outputs.layers.charts.ChartJFreeChartOutputHistogram.java

@Override
protected void resetSerie(final IScope scope, final String serieid) {
    // TODO Auto-generated method stub

    final ChartDataSeries dataserie = chartdataset.getDataSeries(scope, serieid);
    // DefaultCategoryDataset serie=((DefaultCategoryDataset)
    // jfreedataset.get(IdPosition.get(dataserie.getSerieId(scope))));
    final DefaultCategoryDataset serie = (DefaultCategoryDataset) jfreedataset.get(0);
    if (serie.getRowKeys().contains(serieid)) {
        serie.removeRow(serieid);//from w  w  w. j  ava  2 s  . c om
    }
    final ArrayList<String> CValues = dataserie.getCValues(scope);
    final ArrayList<Double> YValues = dataserie.getYValues(scope);
    final ArrayList<Double> SValues = dataserie.getSValues(scope);
    if (CValues.size() > 0) {
        // TODO Hack to speed up, change!!!
        // final CategoryAxis domainAxis = ((CategoryPlot)
        // this.chart.getPlot()).getDomainAxis();
        final NumberAxis rangeAxis = (NumberAxis) ((CategoryPlot) this.chart.getPlot()).getRangeAxis();
        rangeAxis.setAutoRange(false);
        for (int i = 0; i < CValues.size(); i++) {
            if (getY_LogScale(scope)) {
                final double val = YValues.get(i);
                if (val <= 0) {
                    throw GamaRuntimeException.warning("Log scale with <=0 value:" + val, scope);
                } else {
                    serie.addValue(YValues.get(i), serieid, CValues.get(i));
                }

            } else {
                serie.addValue(YValues.get(i), serieid, CValues.get(i));

            }
            // ((ExtendedCategoryAxis)domainAxis).addSubLabel(CValues.get(i),
            // serieid);;
        }
    }
    if (SValues.size() > 0) {
        // what to do with Z values??

    }

    this.resetRenderer(scope, serieid);

}

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

private void addLearnerFeedback() {
    MainDocumentPart mdp = wordMLPackage.getMainDocumentPart();
    mdp.addStyledParagraphOfText("Heading1", "Source of Learner Feedback");
    FeedbackChartMaker maker = new FeedbackChartMaker(module);
    JFreeChart chart = maker.getChartPanel().getChart();
    DefaultCategoryDataset dataset = (DefaultCategoryDataset) maker.getDataset();
    Tbl table = factory.createTbl();/*from w  w w . j ava2 s  .com*/
    Comparable columnKey = (Comparable) dataset.getColumnKeys().get(0);
    boolean first = true;
    for (Object key : dataset.getRowKeys()) {
        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.8f); /* Width of the chart */
            int height = (int) (360f * 0.8f); /* Height of the chart */
            tableCell.getContent().add(createChart(chart, width, height));
            first = false;
        } else {
            tableCell.getContent().add(factory.createP());
        }
        tableRow.getContent().add(tableCell);
        double value = (Double) dataset.getValue((Comparable) key, columnKey);
        addSimpleTableCell(tableRow, key.toString());
        addTableCell(tableRow, FLOAT_FORMATTER.format(value) + " hours", JcEnumeration.RIGHT, false);
        table.getContent().add(tableRow);
    }
    addBorders(table);
    mdp.addObject(table);
}

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

private void addLearningExperience() {
    MainDocumentPart mdp = wordMLPackage.getMainDocumentPart();
    mdp.addStyledParagraphOfText("Heading1", "Learning Experience");
    LearningExperienceChartMaker maker = new LearningExperienceChartMaker(module);
    JFreeChart chart = maker.getChartPanel().getChart();
    DefaultCategoryDataset dataset = (DefaultCategoryDataset) maker.getDataset();
    Tbl table = factory.createTbl();/* www  .j  av a2 s  .co m*/
    double total = 0f;
    Comparable columnKey = (Comparable) dataset.getColumnKeys().get(0);
    for (Object key : dataset.getRowKeys()) {
        total += (Double) dataset.getValue((Comparable) key, columnKey);
    }
    boolean first = true;
    for (Object key : dataset.getRowKeys()) {
        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) (180f * 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, columnKey) / 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:it.eng.spagobi.engines.chart.bo.charttypes.barcharts.BarCharts.java

/**
 * Limits the dataset to a particular serie.
 * /*from  ww w  .ja  va 2 s .c  om*/
 * @param dataset the dataset
 * @param serie the serie
 * 
 * @return the dataset
 */

public Dataset filterDatasetSeries(Dataset dataset, Vector series) {
    logger.debug("IN");
    DefaultCategoryDataset catDataset = (DefaultCategoryDataset) dataset;

    //keeps track of wich series has to be shown
    currentSeries = series;

    //List rowKeys=new Vector();

    List rowKeys = new Vector(catDataset.getRowKeys());

    for (Iterator iterator = rowKeys.iterator(); iterator.hasNext();) {
        String row = (String) iterator.next();
        if (!(series.contains(row))) {
            catDataset.removeRow(row);
            seriesNames.remove(row);
        }
    }

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

}

From source file:com.compomics.pepshell.view.statistics.RatioStatisticsPane.java

private CategoryDataset createRatioDataset(PepshellProtein aPepshellProtein) {
    DefaultCategoryDataset returnset = new DefaultCategoryDataset();
    //PepshellProtein protein = experimentGroup.get(0).getProteins().get(experimentGroup.get(0).getProteins().indexOf(aPepshellProtein));
    if (aPepshellProtein != null) {
        for (Experiment anExperiment : experimentGroup) {

            if (anExperiment.getProteins().indexOf(aPepshellProtein) != -1) {
                PepshellProtein protein = anExperiment.getProteins()
                        .get(anExperiment.getProteins().indexOf(aPepshellProtein));

                List<PeptideGroup> sortedCopy = protein.getPeptideGroups().stream()
                        .sorted(Comparator
                                .comparing(e -> e.getRepresentativePeptide().getBeginningProteinMatch()))
                        .collect(Collectors.toList());

                for (PeptideGroup aPeptideGroup : sortedCopy) {
                    PeptideInterface aPeptide = aPeptideGroup.getRepresentativePeptide();

                    if (aPeptide instanceof QuantedPeptide && ((QuantedPeptide) aPeptide).getRatio() != null) {
                        Double value = Math.log(((QuantedPeptide) aPeptide).getRatio()) / Math.log(2);
                        returnset.addValue(value, anExperiment.getExperimentName(),
                                String.valueOf(aPeptide.getBeginningProteinMatch()));
                        //this part can be put in it's own method

                        for (Experiment checkList : experimentGroup) {

                            if (!checkList.equals(anExperiment)
                                    && returnset.getRowKeys().contains(checkList.getExperimentName())) {
                                if (returnset.getValue(checkList.getExperimentName(),
                                        String.valueOf(aPeptide.getBeginningProteinMatch())) == null) {
                                    returnset.addValue(null, checkList.getExperimentName(),
                                            String.valueOf(aPeptide.getBeginningProteinMatch()));
                                }/*from   w  w  w  . ja  v  a  2  s  .c o  m*/
                            }
                        }
                    }

                }

            }
        }
    }

    return returnset;
}

From source file:it.eng.spagobi.engines.chart.bo.charttypes.barcharts.OverlaidStackedBarLine.java

public JFreeChart createChart(DatasetMap datasets) {

    // create the first renderer...

    CategoryPlot plot = new CategoryPlot();
    NumberFormat nf = NumberFormat.getNumberInstance(locale);

    NumberAxis rangeAxis = new NumberAxis(getValueLabel());
    rangeAxis.setLabelFont(new Font(styleXaxesLabels.getFontName(), Font.PLAIN, styleXaxesLabels.getSize()));
    rangeAxis.setLabelPaint(styleXaxesLabels.getColor());
    rangeAxis/*from   w  w w  . j  a  va 2s .  co m*/
            .setTickLabelFont(new Font(styleXaxesLabels.getFontName(), Font.PLAIN, styleXaxesLabels.getSize()));
    rangeAxis.setTickLabelPaint(styleXaxesLabels.getColor());
    rangeAxis.setNumberFormatOverride(nf);
    plot.setRangeAxis(rangeAxis);
    if (rangeIntegerValues == true) {
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    }

    CategoryAxis domainAxis = new CategoryAxis(getCategoryLabel());
    domainAxis.setLabelFont(new Font(styleYaxesLabels.getFontName(), Font.PLAIN, styleYaxesLabels.getSize()));
    domainAxis.setLabelPaint(styleYaxesLabels.getColor());
    domainAxis
            .setTickLabelFont(new Font(styleYaxesLabels.getFontName(), Font.PLAIN, styleYaxesLabels.getSize()));
    domainAxis.setTickLabelPaint(styleYaxesLabels.getColor());
    plot.setDomainAxis(domainAxis);

    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(true);
    plot.setDomainGridlinesVisible(true);

    DefaultCategoryDataset datasetBar = (DefaultCategoryDataset) datasets.getDatasets().get("stackedbar");

    //I create one bar renderer and one line

    MyStandardCategoryItemLabelGenerator generator = null;
    if (additionalLabels) {
        generator = new MyStandardCategoryItemLabelGenerator(catSerLabels, "{1}", NumberFormat.getInstance());
    }

    if (useBars) {
        CategoryItemRenderer barRenderer = new StackedBarRenderer();

        if (maxBarWidth != null) {
            ((BarRenderer) barRenderer).setMaximumBarWidth(maxBarWidth.doubleValue());
        }

        if (additionalLabels) {
            barRenderer.setBaseItemLabelGenerator(generator);
            double orient = (-Math.PI / 2.0);
            if (styleValueLabels.getOrientation().equalsIgnoreCase("horizontal")) {
                orient = 0.0;
            }
            barRenderer.setBaseItemLabelFont(
                    new Font(styleValueLabels.getFontName(), Font.PLAIN, styleValueLabels.getSize()));
            barRenderer.setBaseItemLabelPaint(styleValueLabels.getColor());
            barRenderer.setBaseItemLabelsVisible(true);
            barRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER,
                    TextAnchor.CENTER, TextAnchor.CENTER, orient));
            barRenderer.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER,
                    TextAnchor.CENTER, TextAnchor.CENTER, orient));

        }

        if (colorMap != null) {
            for (Iterator iterator = datasetBar.getRowKeys().iterator(); iterator.hasNext();) {
                String serName = (String) iterator.next();
                String labelName = "";
                int index = -1;
                if (seriesCaptions != null && seriesCaptions.size() > 0) {
                    labelName = serName;
                    serName = (String) seriesCaptions.get(serName);
                    index = datasetBar.getRowIndex(labelName);
                } else
                    index = datasetBar.getRowIndex(serName);

                Color color = (Color) colorMap.get(serName);
                if (color != null) {
                    barRenderer.setSeriesPaint(index, color);
                }
            }
        }
        // add tooltip if enabled
        if (enableToolTips) {
            MyCategoryToolTipGenerator generatorToolTip = new MyCategoryToolTipGenerator(freeToolTips,
                    seriesTooltip, categoriesTooltip, seriesCaptions);
            barRenderer.setToolTipGenerator(generatorToolTip);
        }

        //defines url for drill
        boolean document_composition = false;
        if (mode.equalsIgnoreCase(SpagoBIConstants.DOCUMENT_COMPOSITION))
            document_composition = true;

        logger.debug("Calling Url Generation");

        MyCategoryUrlGenerator mycatUrl = null;
        if (super.rootUrl != null) {
            logger.debug("Set MycatUrl");
            mycatUrl = new MyCategoryUrlGenerator(super.rootUrl);

            mycatUrl.setDocument_composition(document_composition);
            mycatUrl.setCategoryUrlLabel(super.categoryUrlName);
            mycatUrl.setSerieUrlLabel(super.serieUrlname);
            mycatUrl.setDrillDocTitle(drillDocTitle);
            mycatUrl.setTarget(target);
        }
        if (mycatUrl != null) {
            barRenderer.setItemURLGenerator(mycatUrl);
        }

        plot.setDataset(1, datasetBar);
        plot.setRenderer(1, barRenderer);

    }

    if (useLines) {

        LineAndShapeRenderer lineRenderer = new LineAndShapeRenderer();
        //lineRenderer.setShapesFilled(false);
        lineRenderer.setShapesFilled(true);
        if (additionalLabels) {
            lineRenderer.setBaseItemLabelGenerator(generator);
            lineRenderer.setBaseItemLabelFont(
                    new Font(defaultLabelsStyle.getFontName(), Font.PLAIN, defaultLabelsStyle.getSize()));
            lineRenderer.setBaseItemLabelPaint(defaultLabelsStyle.getColor());
            lineRenderer.setBaseItemLabelsVisible(true);
        }

        DefaultCategoryDataset datasetLine = (DefaultCategoryDataset) datasets.getDatasets().get("line");

        if (enableToolTips) {
            MyCategoryToolTipGenerator generatorToolTip = new MyCategoryToolTipGenerator(freeToolTips,
                    seriesTooltip, categoriesTooltip, seriesCaptions);
            lineRenderer.setToolTipGenerator(generatorToolTip);
        }

        if (colorMap != null) {
            for (Iterator iterator = datasetLine.getRowKeys().iterator(); iterator.hasNext();) {
                String serName = (String) iterator.next();
                String labelName = "";
                int index = -1;

                if (seriesCaptions != null && seriesCaptions.size() > 0) {
                    labelName = serName;
                    serName = (String) seriesCaptions.get(serName);
                    index = datasetLine.getRowIndex(labelName);
                } else
                    index = datasetLine.getRowIndex(serName);

                Color color = (Color) colorMap.get(serName);
                if (color != null) {
                    lineRenderer.setSeriesPaint(index, color);
                }
            }
        }
        plot.setDataset(0, datasetLine);
        plot.setRenderer(0, lineRenderer);
    }

    if (secondAxis) {
        NumberAxis na = new NumberAxis(secondAxisLabel);
        na.setLabelFont(new Font(styleXaxesLabels.getFontName(), Font.PLAIN, styleXaxesLabels.getSize()));
        na.setLabelPaint(styleXaxesLabels.getColor());
        na.setTickLabelFont(new Font(styleXaxesLabels.getFontName(), Font.PLAIN, styleXaxesLabels.getSize()));
        na.setTickLabelPaint(styleXaxesLabels.getColor());
        na.setUpperMargin(0.10);
        if (rangeIntegerValues == true) {
            na.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        }
        na.setNumberFormatOverride(nf);
        plot.setRangeAxis(1, na);
        plot.mapDatasetToRangeAxis(0, 1);
    }

    //plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);

    plot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    JFreeChart chart = new JFreeChart(plot);
    TextTitle title = setStyleTitle(name, styleTitle);
    chart.setTitle(title);
    if (subName != null && !subName.equals("")) {
        TextTitle subTitle = setStyleTitle(subName, styleSubTitle);
        chart.addSubtitle(subTitle);
    }

    chart.setBackgroundPaint(Color.white);

    if (legend == true)
        drawLegend(chart);
    return chart;

}