Example usage for org.jfree.chart.urls PieURLGenerator PieURLGenerator

List of usage examples for org.jfree.chart.urls PieURLGenerator PieURLGenerator

Introduction

In this page you can find the example usage for org.jfree.chart.urls PieURLGenerator PieURLGenerator.

Prototype

PieURLGenerator

Source Link

Usage

From source file:org.openfaces.component.chart.impl.plots.PiePlot3DAdapter.java

private void setupTooltipsAndUrls(PiePlot plot, final PieChartView chartView) {
    if (chartView.getTooltip() != null) {
        plot.setToolTipGenerator(new PieToolTipGenerator() {
            public String generateToolTip(PieDataset pieDataset, Comparable comparable) {
                return chartView.getTooltip();
            }/*  w w  w .j av a2 s .c  o m*/
        });
    } else if (chartView.getDynamicTooltip() != null) {
        plot.setToolTipGenerator(new DynamicPieGenerator(chartView, chartView.getDynamicTooltip()));
    }

    if (chartView.getUrl() != null) {
        plot.setURLGenerator(new PieURLGenerator() {
            public String generateURL(PieDataset pieDataset, Comparable comparable, int i) {
                return chartView.getUrl();
            }
        });
    } else if (chartView.getDynamicUrl() != null) {
        plot.setURLGenerator(new DynamicPieGenerator(chartView, chartView.getDynamicUrl()));
    }

}

From source file:org.pentaho.chart.plugin.jfreechart.JFreeChartFactoryEngine.java

public JFreeChart makePieChart(ChartModel chartModel, NamedValuesDataModel dataModel,
        final IChartLinkGenerator linkGenerator) {
    final DefaultPieDataset dataset = new DefaultPieDataset();
    for (NamedValue namedValue : dataModel) {
        if (namedValue.getName() != null) {
            dataset.setValue(namedValue.getName(),
                    scaleNumber(namedValue.getValue(), dataModel.getScalingFactor()));
        }//from  ww  w . ja  v  a 2 s.  c o  m
    }

    boolean showLegend = (chartModel.getLegend() != null) && (chartModel.getLegend().getVisible());

    String title = "";
    if ((chartModel.getTitle() != null) && (chartModel.getTitle().getText() != null)
            && (chartModel.getTitle().getText().trim().length() > 0)) {
        title = chartModel.getTitle().getText();
    }

    final JFreeChart chart = ChartFactory.createPieChart(title, dataset, showLegend, true, false);

    initChart(chart, chartModel);

    final PiePlot jFreePiePlot = (PiePlot) chart.getPlot();

    if (linkGenerator != null) {
        jFreePiePlot.setURLGenerator(new PieURLGenerator() {

            public String generateURL(PieDataset arg0, Comparable arg1, int arg2) {
                return linkGenerator.generateLink(arg1.toString(), arg1.toString(), arg0.getValue(arg1));
            }
        });
    }

    jFreePiePlot.setNoDataMessage("No data available"); //$NON-NLS-1$
    jFreePiePlot.setCircular(true);
    jFreePiePlot.setLabelGap(0.02);

    org.pentaho.chart.model.PiePlot chartBeansPiePlot = (org.pentaho.chart.model.PiePlot) chartModel.getPlot();

    List<Integer> colors = getPlotColors(chartBeansPiePlot);

    int index = 0;
    for (NamedValue namedValue : dataModel) {
        if (namedValue.getName() != null) {
            jFreePiePlot.setSectionPaint(namedValue.getName(),
                    new Color(0x00FFFFFF & colors.get(index % colors.size())));
        }
        index++;
    }

    if (chartBeansPiePlot.getLabels().getVisible()) {
        jFreePiePlot.setLabelGenerator(new StandardPieSectionLabelGenerator());

        Font font = ChartUtils.getFont(chartBeansPiePlot.getLabels().getFontFamily(),
                chartBeansPiePlot.getLabels().getFontStyle(), chartBeansPiePlot.getLabels().getFontWeight(),
                chartBeansPiePlot.getLabels().getFontSize());
        if (font != null) {
            jFreePiePlot.setLabelFont(font);
            if (chartBeansPiePlot.getLabels().getColor() != null) {
                jFreePiePlot.setLabelPaint(new Color(0x00FFFFFF & chartBeansPiePlot.getLabels().getColor()));
            }
            if (chartBeansPiePlot.getLabels().getBackgroundColor() != null) {
                jFreePiePlot.setLabelBackgroundPaint(
                        new Color(0x00FFFFFF & chartBeansPiePlot.getLabels().getBackgroundColor()));
            }
        }
    } else {
        jFreePiePlot.setLabelGenerator(null);
    }

    jFreePiePlot.setStartAngle(-chartBeansPiePlot.getStartAngle());

    return chart;
}

From source file:lucee.runtime.tag.Chart.java

private void setUrl(JFreeChart chart) {
    if (StringUtil.isEmpty(url))
        return;//  w  w  w. j  a va 2 s  .  c o  m
    Plot plot = chart.getPlot();
    if (plot instanceof PiePlot) {
        PiePlot pp = (PiePlot) plot;
        pp.setURLGenerator(new PieURLGenerator() {
            public String generateURL(PieDataset dataset, Comparable key, int pieIndex) {
                if (!StringUtil.contains(url, "?"))
                    url += "?series=$SERIESLABEL$&category=$ITEMLABEL$&value=$VALUE$";
                String retUrl = StringUtil.replace(url, "$ITEMLABEL$",
                        URLUtilities.encode(key.toString(), "UTF-8"), false, true);
                retUrl = StringUtil.replace(retUrl, "$SERIESLABEL$", Integer.toString(pieIndex), false, true);
                retUrl = StringUtil.replace(retUrl, "$VALUE$",
                        URLUtilities.encode(dataset.getValue(key).toString(), "UTF-8"), false, true);
                return retUrl;
            }
        });
    } else if (plot instanceof CategoryPlot) {
        CategoryPlot cp = (CategoryPlot) plot;
        CategoryItemRenderer renderer = cp.getRenderer();
        renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator() {
            public String generateURL(CategoryDataset dataset, int series, int category) {
                if (!StringUtil.contains(url, "?"))
                    url += "?series=$SERIESLABEL$&category=$ITEMLABEL$&value=$VALUE$";
                String retUrl = StringUtil.replace(url, "$ITEMLABEL$",
                        URLUtilities.encode(dataset.getColumnKey(category).toString(), "UTF-8"), false, true);
                retUrl = StringUtil.replace(retUrl, "$SERIESLABEL$",
                        URLUtilities.encode(dataset.getRowKey(series).toString(), "UTF-8"), false, true);
                retUrl = StringUtil.replace(retUrl, "$VALUE$",
                        URLUtilities.encode(dataset.getValue(series, category).toString(), "UTF-8"), false,
                        true);
                return retUrl;
            }
        });
    } else if (plot instanceof XYPlot) {
        XYPlot cp = (XYPlot) plot;
        XYItemRenderer renderer = cp.getRenderer();
        renderer.setURLGenerator(new StandardXYURLGenerator() {
            public String generateURL(XYDataset dataset, int series, int category) {
                if (!StringUtil.contains(url, "?"))
                    url += "?series=$SERIESLABEL$&category=$ITEMLABEL$&value=$VALUE$";
                String itemLabel = _plotItemLables.get(category + 1) != null ? _plotItemLables.get(category + 1)
                        : dataset.getX(series, category).toString();
                String retUrl = StringUtil.replace(url, "$ITEMLABEL$", URLUtilities.encode(itemLabel, "UTF-8"),
                        false, true);
                retUrl = StringUtil.replace(retUrl, "$SERIESLABEL$",
                        URLUtilities.encode(dataset.getSeriesKey(series).toString(), "UTF-8"), false, true);
                retUrl = StringUtil.replace(retUrl, "$VALUE$",
                        URLUtilities.encode(dataset.getY(series, category).toString(), "UTF-8"), false, true);
                return retUrl;
            }
        });
    }

}