| 1 34 35 package org.krysalis.jcharts.test; 36 37 38 import org.krysalis.jcharts.chartData.ChartDataException; 39 import org.krysalis.jcharts.chartData.PieChartDataSet; 40 import org.krysalis.jcharts.imageMap.ImageMap; 41 import org.krysalis.jcharts.nonAxisChart.PieChart2D; 42 import org.krysalis.jcharts.nonAxisChart.PieChart3D; 43 import org.krysalis.jcharts.properties.ChartProperties; 44 import org.krysalis.jcharts.properties.LegendAreaProperties; 45 import org.krysalis.jcharts.properties.LegendProperties; 46 import org.krysalis.jcharts.properties.PieChart2DProperties; 47 import org.krysalis.jcharts.properties.PieChart3DProperties; 48 import org.krysalis.jcharts.properties.PropertyException; 49 import org.krysalis.jcharts.properties.util.ChartStroke; 50 import org.krysalis.jcharts.types.PieLabelType; 51 52 import java.awt.*; 53 54 55 60 public class Pie3DTestDriver 61 { 62 63 68 static void test() throws ChartDataException, PropertyException 69 { 70 PieChart2D pieChart2D; 71 PieChartDataSet pieChartDataSet; 72 LegendProperties legendProperties; 73 ChartProperties chartProperties; 74 75 int dataSize; 76 int width; 77 int height; 78 int numTestsToRun = 15; 79 String fileName; 80 81 HTMLGenerator htmlGenerator = new HTMLGenerator( ChartTestDriver.OUTPUT_PATH + "pieChart2dTest.html" ); 82 83 for( int i = 0; i < numTestsToRun; i++ ) 84 { 85 boolean createImageMap = true; 87 dataSize = (int) TestDataGenerator.getRandomNumber( 1, 10 ); 88 pieChartDataSet = Pie3DTestDriver.getPieChartDataSet( dataSize, 1, 7 ); 89 90 width = (int) TestDataGenerator.getRandomNumber( 100, 600 ); 91 height = (int) TestDataGenerator.getRandomNumber( 100, 600 ); 92 93 legendProperties = new LegendProperties(); 94 TestDataGenerator.randomizeLegend( legendProperties ); 95 97 chartProperties = new ChartProperties(); 98 chartProperties.setBackgroundPaint( TestDataGenerator.getRandomPaint() ); 100 102 pieChart2D = new PieChart2D( pieChartDataSet, legendProperties, chartProperties, width, height ); 103 104 fileName = ChartTestDriver.OUTPUT_PATH + "pieChart2d" + i + ChartTestDriver.EXTENSION; 105 106 ImageMap imageMap; 107 if( createImageMap ) 108 { 109 pieChart2D.renderWithImageMap(); 110 imageMap = pieChart2D.getImageMap(); 111 } 112 else 113 { 114 imageMap = null; 115 } 116 117 118 ChartTestDriver.exportImage( pieChart2D, fileName ); 119 120 121 htmlGenerator.chartTableStart( "PieChart2D", fileName, imageMap ); 122 htmlGenerator.propertiesTableRowStart(); 123 pieChartDataSet.toHTML( htmlGenerator ); 124 htmlGenerator.propertiesTableRowStart(); 125 pieChart2D.toHTML( htmlGenerator, fileName ); 126 127 htmlGenerator.addLineBreak(); 128 } 129 130 htmlGenerator.saveFile(); 131 } 132 133 134 142 private static PieChartDataSet getPieChartDataSet( int numToCreate, int minValue, int maxValue ) throws ChartDataException 143 { 144 PieChart2DProperties properties = new PieChart2DProperties(); 145 properties.setBorderChartStroke( new ChartStroke( new BasicStroke( 1.0f ), TestDataGenerator.getRandomPaint() ) ); 147 148 String [] labels = TestDataGenerator.getRandomStrings( numToCreate, (int) TestDataGenerator.getRandomNumber( 3, 20 ), false ); 149 Paint[] paints = TestDataGenerator.getRandomPaints( numToCreate ); 150 151 return new PieChartDataSet( "This is a test title", TestDataGenerator.getRandomNumbers( numToCreate, minValue, maxValue ), labels, paints, properties ); 152 } 153 154 155 161 public static void main( String [] args ) throws ChartDataException, PropertyException 162 { 163 164 165 double[] data = {45.00d, 90.00d, 45.00d, 180d}; 166 String [] labels = {"Equities", "Bonds", "Money Market", "Alternative Investments"}; 167 169 Paint[] paints = { new Color( 200, 0, 0, 20 ), 171 new Color( 0, 200, 0, 220 ), 172 new Color( 0, 0, 200, 20 ), 173 new Color( 200, 200, 0, 20 ) }; 174 175 176 181 182 183 184 PieChart3DProperties pieChart3DProperties = new PieChart3DProperties(); 185 pieChart3DProperties.setPieLabelType( PieLabelType.LEGEND_LABELS ); 186 pieChart3DProperties.setTickLength( 5 ); 187 188 pieChart3DProperties.setZeroDegreeOffset( 60 ); 189 190 pieChart3DProperties.setDepth( 15 ); 191 192 LegendProperties legendProperties = new LegendProperties(); 193 legendProperties.setPlacement( LegendAreaProperties.RIGHT ); 194 legendProperties.setNumColumns( 1 ); 195 197 PieChartDataSet pieChartDataSet = new PieChartDataSet( "Investment Categories", data, labels, paints, pieChart3DProperties ); 198 199 ChartProperties chartProperties = new ChartProperties(); 200 chartProperties.setBorderStroke( ChartStroke.DEFAULT_CHART_OUTLINE ); 201 202 PieChart3D pieChart = new PieChart3D( pieChartDataSet, legendProperties, chartProperties, 600, 200 ); 203 205 ChartTestDriver.exportImage( pieChart, "pie3d.png" ); 206 } 207 208 209 } 210 | Popular Tags |