=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2011-04-09 17:21:45 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2011-04-09 18:17:19 +0000 @@ -80,6 +80,7 @@ import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; +import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.DatasetRenderingOrder; import org.jfree.chart.plot.MultiplePiePlot; @@ -88,6 +89,7 @@ import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.chart.renderer.category.CategoryItemRenderer; import org.jfree.chart.renderer.category.LineAndShapeRenderer; +import org.jfree.chart.title.LegendTitle; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; @@ -431,42 +433,43 @@ { plot = new CategoryPlot( dataSets[0], new CategoryAxis(), new NumberAxis(), lineRenderer ); } - else if ( chart.isType( TYPE_PIE ) ) + else if ( chart.isType( TYPE_PIE ) || chart.isType( TYPE_PIE3D ) ) { - JFreeChart multiplePieChart = ChartFactory.createMultiplePieChart( chart.getTitle(), dataSets[0], - TableOrder.BY_ROW, !chart.getHideLegend(), false, false ); + JFreeChart multiplePieChart = null; + + if ( chart.isType( TYPE_PIE ) ) + { + multiplePieChart = ChartFactory.createMultiplePieChart( chart.getTitle(), dataSets[0], + TableOrder.BY_ROW, !chart.getHideLegend(), false, false ); + } + else + { + multiplePieChart = ChartFactory.createMultiplePieChart3D( chart.getTitle(), dataSets[0], + TableOrder.BY_ROW, !chart.getHideLegend(), false, false ); + } + multiplePieChart.setBackgroundPaint( Color.WHITE ); multiplePieChart.setAntiAlias( true ); TextTitle title = multiplePieChart.getTitle(); title.setFont( titleFont ); - MultiplePiePlot multiplePiePlot = (MultiplePiePlot) multiplePieChart.getPlot(); - PiePlot piePlot = (PiePlot) multiplePiePlot.getPieChart().getPlot(); - piePlot.setBackgroundPaint( Color.WHITE ); - piePlot.setShadowXOffset( 0 ); - piePlot.setShadowYOffset( 0 ); - piePlot.setLabelGenerator( null ); - - for ( int i = 0; i < dataSets[0].getColumnCount(); i++ ) - { - piePlot.setSectionPaint( dataSets[0].getColumnKey( i ), colors[i] ); - } - - return multiplePieChart; - } - else if ( chart.isType( TYPE_PIE3D ) ) - { - JFreeChart multiplePieChart = ChartFactory.createMultiplePieChart3D( chart.getTitle(), dataSets[0], - TableOrder.BY_ROW, !chart.getHideLegend(), false, false ); - multiplePieChart.setBackgroundPaint( Color.WHITE ); - multiplePieChart.setAntiAlias( true ); - - MultiplePiePlot multiplePiePlot = (MultiplePiePlot) multiplePieChart.getPlot(); - PiePlot piePlot = (PiePlot) multiplePiePlot.getPieChart().getPlot(); - piePlot.setBackgroundPaint( Color.WHITE ); - piePlot.setShadowXOffset( 0 ); - piePlot.setShadowYOffset( 0 ); + LegendTitle legend = multiplePieChart.getLegend(); + legend.setItemFont( subTitleFont ); + + MultiplePiePlot multiplePiePlot = (MultiplePiePlot) multiplePieChart.getPlot(); + JFreeChart pieChart = multiplePiePlot.getPieChart(); + pieChart.getTitle().setFont( subTitleFont ); + + PiePlot piePlot = (PiePlot) pieChart.getPlot(); + piePlot.setBackgroundPaint( Color.WHITE ); + piePlot.setShadowXOffset( 0 ); + piePlot.setShadowYOffset( 0 ); + piePlot.setLabelFont( new Font( "Tahoma", Font.PLAIN, 10 ) ); + piePlot.setLabelGenerator( new StandardPieSectionLabelGenerator( "{2}" ) ); + piePlot.setSimpleLabels( true ); + piePlot.setIgnoreZeroValues( true ); + piePlot.setIgnoreNullValues( true ); for ( int i = 0; i < dataSets[0].getColumnCount(); i++ ) {