// build a PieDataset representing Issues by Status
final Comparator<Issue> issuesByStatusGrouper = GlazedLists.beanPropertyComparator(Issue.class, "status", new String[0]);
final FunctionList.Function<List<Issue>, Comparable<String>> keyFunction = new StatusFunction();
final FunctionList.Function<List<Issue>, Number> valueFunction = new ListSizeFunction();
final EventList<Issue> pieDataSource = GlazedListsSwing.swingThreadProxyList(issuesList);
final PieDataset issuesByStatusDataset = new EventListPieDataset<Issue, String>(pieDataSource, issuesByStatusGrouper, keyFunction, valueFunction);
// build a Pie Chart and a panel to display it
final JFreeChart pieChart_IssuesByStatus = new JFreeChart("Issues By Status", new CustomPiePlot(issuesByStatusDataset));
pieChart_IssuesByStatus.setBackgroundPaint(CHART_PANEL_BACKGROUND_PAINT);
pieChart_IssuesByStatus.getLegend().setBorder(CHART_LEGEND_BORDER);