use of org.eclipse.linuxtools.dataviewers.piechart.PieChart in project linuxtools by eclipse.
the class PieChartBuilder method createChart.
@Override
protected void createChart() {
this.chart = new PieChart(this, getStyle());
((PieChart) chart).setCustomColors(COLORS);
chartMouseMoveListener = new PieChartMouseMoveListener((PieChart) chart, chart);
}
use of org.eclipse.linuxtools.dataviewers.piechart.PieChart in project linuxtools by eclipse.
the class ChartFactory method producePieChart.
/**
* Produces a pie chart from the input objects.
*
* @param objects
* the input data
* @param nameField
* the field used to get the labels of the objects (colored parts in the pie).
* @param valFields
* the field providing the values for the pie parts.
* @param title Title of the chart.
* @return a new pie chart
*/
public static Chart producePieChart(Object[] objects, ISTDataViewersField nameField, List<IChartField> valFields, String title) {
ChartView view;
try {
final Color WHITE = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WHITE);
final Color BLACK = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_BLACK);
final Color GRAD = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
view = (ChartView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ChartView.VIEW_ID, String.valueOf(ChartView.getSecId()), IWorkbenchPage.VIEW_ACTIVATE);
PieChart chart = new PieChart(view.getParent(), SWT.NONE);
chart.setBackground(WHITE);
chart.setBackgroundInPlotArea(GRAD);
chart.getTitle().setText(title);
chart.getTitle().setForeground(BLACK);
chart.getLegend().setPosition(SWT.RIGHT);
String[] valueLabels = new String[objects.length];
for (int i = 0; i < objects.length; i++) {
valueLabels[i] = nameField.getValue(objects[i]);
}
// pie chart data is grouped by columns
// row size is the number of pie charts
// column size is the number of data per pie chart
double[][] doubleValues = new double[objects.length][valFields.size()];
// data
for (int i = 0; i < valFields.size(); i++) {
for (int j = 0; j < objects.length; j++) {
Number num = valFields.get(i).getNumber(objects[j]);
double longVal = num.doubleValue();
doubleValues[j][i] = longVal + 1;
}
}
chart.addPieChartSeries(valueLabels, doubleValues);
chart.getAxisSet().adjustRange();
return chart;
} catch (PartInitException e) {
Activator.getDefault().getLog().log(e.getStatus());
}
return null;
}
Aggregations