com.codeandme.jfreechart.DemoView.java Source code

Java tutorial

Introduction

Here is the source code for com.codeandme.jfreechart.DemoView.java

Source

/*******************************************************************************
 * Copyright (c) 2015 Christian Pontesegger
 * 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:
 *     Christian Pontesegger - initial implementation
 *******************************************************************************/
package com.codeandme.jfreechart;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.experimental.chart.swt.ChartComposite;
import org.jfree.util.Rotation;

public class DemoView extends ViewPart {

    public DemoView() {
    }

    @Override
    public void createPartControl(Composite parent) {
        final PieDataset dataset = createDataset();
        final JFreeChart chart = createChart(dataset, "Operating Systems");

        new ChartComposite(parent, SWT.NONE, chart, true);
    }

    private PieDataset createDataset() {
        final DefaultPieDataset result = new DefaultPieDataset();
        result.setValue("Linux", 29);
        result.setValue("Mac", 20);
        result.setValue("Windows", 51);
        return result;
    }

    private org.jfree.chart.JFreeChart createChart(final PieDataset dataset, final String title) {
        final JFreeChart chart = ChartFactory.createPieChart3D(title, dataset, true, true, false);
        final PiePlot3D plot = (PiePlot3D) chart.getPlot();
        plot.setStartAngle(290);
        plot.setDirection(Rotation.CLOCKWISE);
        plot.setForegroundAlpha(0.5f);
        return chart;
    }

    @Override
    public void setFocus() {
    }
}