Package name.abuchen.portfolio.ui.views.taxonomy

Source Code of name.abuchen.portfolio.ui.views.taxonomy.PieChartViewer

package name.abuchen.portfolio.ui.views.taxonomy;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import name.abuchen.portfolio.ui.util.PieChart;
import name.abuchen.portfolio.ui.util.PieChart.Slice;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;

/* package */class PieChartViewer extends Page
{
    private PieChart pieChart;

    public PieChartViewer(TaxonomyModel model, TaxonomyNodeRenderer renderer)
    {
        super(model, renderer);
    }

    @Override
    public Control createControl(Composite container)
    {
        pieChart = new PieChart(container, SWT.NONE);

        updatePieSlices();

        return pieChart;
    }

    private void updatePieSlices()
    {
        List<PieChart.Slice> slices = new ArrayList<PieChart.Slice>();

        for (TaxonomyNode child : getModel().getRootNode().getChildren())
        {
            slices.add(new PieChart.Slice(child.getActual(), //
                            child.getName(), //
                            getRenderer().getColorFor(child)));
        }

        Collections.sort(slices, new Slice.ByValue());

        pieChart.setSlices(slices);
        pieChart.redraw();
    }

    @Override
    public void beforePage()
    {}

    @Override
    public void afterPage()
    {}

    @Override
    public void nodeChange(TaxonomyNode node)
    {
        updatePieSlices();
    }
}
TOP

Related Classes of name.abuchen.portfolio.ui.views.taxonomy.PieChartViewer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.