/******************************************************************************* * Copyright (c) 2017 Rogue Wave Software Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Rogue Wave Software Inc. - initial implementation *******************************************************************************/ package org.eclipse.php.profile.ui.utils; import org.eclipse.birt.chart.model.Chart; import org.eclipse.birt.chart.model.ChartWithoutAxes; import org.eclipse.birt.chart.model.attribute.ChartDimension; import org.eclipse.birt.chart.model.attribute.Position; import org.eclipse.birt.chart.model.attribute.impl.ColorDefinitionImpl; import org.eclipse.birt.chart.model.component.Series; import org.eclipse.birt.chart.model.component.impl.SeriesImpl; import org.eclipse.birt.chart.model.data.NumberDataSet; import org.eclipse.birt.chart.model.data.SeriesDefinition; import org.eclipse.birt.chart.model.data.TextDataSet; import org.eclipse.birt.chart.model.data.impl.NumberDataSetImpl; import org.eclipse.birt.chart.model.data.impl.SeriesDefinitionImpl; import org.eclipse.birt.chart.model.data.impl.TextDataSetImpl; import org.eclipse.birt.chart.model.impl.ChartWithoutAxesImpl; import org.eclipse.birt.chart.model.layout.Legend; import org.eclipse.birt.chart.model.layout.Plot; import org.eclipse.birt.chart.model.type.PieSeries; import org.eclipse.birt.chart.model.type.impl.PieSeriesImpl; /** * Chart utility class. */ public class ChartUtil { public static final Chart createPieChart(String[] labels, double[] values) { if (labels == null || labels.length <= 0) { return null; } ChartWithoutAxes cwoaPie = ChartWithoutAxesImpl.create(); // Plot cwoaPie.setSeriesThickness(8); cwoaPie.setDimension(ChartDimension.TWO_DIMENSIONAL_WITH_DEPTH_LITERAL); cwoaPie.getBlock().setBackground(ColorDefinitionImpl.TRANSPARENT()); Plot p = cwoaPie.getPlot(); p.getClientArea().setBackground(ColorDefinitionImpl.TRANSPARENT()); p.getClientArea().getOutline().setVisible(false); p.getOutline().setVisible(false); // Legend Legend lg = cwoaPie.getLegend(); lg.setPosition(Position.BELOW_LITERAL); lg.getText().getFont().setSize(10); lg.setBackground(null); lg.getOutline().setVisible(false); // Title cwoaPie.getTitle().setVisible(false); // Data Set TextDataSet categoryValues = TextDataSetImpl.create(labels); NumberDataSet seriesValues = NumberDataSetImpl.create(values); // Base Series Series categorySeries = (Series) SeriesImpl.create(); categorySeries.setDataSet(categoryValues); SeriesDefinition categorySeriesDefinition = SeriesDefinitionImpl.create(); cwoaPie.getSeriesDefinitions().add(categorySeriesDefinition); categorySeriesDefinition.getSeriesPalette().update(0); categorySeriesDefinition.getSeries().add(categorySeries); // Orthogonal Series PieSeries pieSeries = (PieSeries) PieSeriesImpl.create(); pieSeries.setDataSet(seriesValues); pieSeries.setExplosion(15); pieSeries.setRatio(1.0); pieSeries.getLabel().setVisible(false); pieSeries.getTitle().setVisible(false); SeriesDefinition pieSeriesDefinition = SeriesDefinitionImpl.create(); pieSeriesDefinition.getQuery().setDefinition("");//$NON-NLS-1$ categorySeriesDefinition.getSeriesDefinitions().add(pieSeriesDefinition); pieSeriesDefinition.getSeries().add(pieSeries); return cwoaPie; } }