1 34 35 package org.krysalis.jcharts.test; 36 37 38 import java.awt.BasicStroke ; 39 import java.awt.Paint ; 40 41 import org.krysalis.jcharts.chartData.ChartDataException; 42 import org.krysalis.jcharts.chartData.PieChartDataSet; 43 import org.krysalis.jcharts.imageMap.ImageMap; 44 import org.krysalis.jcharts.nonAxisChart.PieChart2D; 45 import org.krysalis.jcharts.properties.ChartProperties; 46 import org.krysalis.jcharts.properties.LegendProperties; 47 import org.krysalis.jcharts.properties.PieChart2DProperties; 48 import org.krysalis.jcharts.properties.PropertyException; 49 import org.krysalis.jcharts.properties.util.ChartStroke; 50 51 52 57 public class PieTestDriver 58 { 59 60 65 static void test() throws ChartDataException, PropertyException 66 { 67 PieChart2D pieChart2D; 68 PieChartDataSet pieChartDataSet; 69 LegendProperties legendProperties; 70 ChartProperties chartProperties; 71 72 int dataSize; 73 int width; 74 int height; 75 int numTestsToRun = 15; 76 String fileName; 77 78 HTMLGenerator htmlGenerator = new HTMLGenerator( ChartTestDriver.OUTPUT_PATH + "pieChart2dTest.html" ); 79 80 for( int i = 0; i < numTestsToRun; i++ ) 81 { 82 boolean createImageMap = true; 84 dataSize = (int) TestDataGenerator.getRandomNumber( 1, 10 ); 85 pieChartDataSet = PieTestDriver.getPieChartDataSet( dataSize, 1, 7 ); 86 87 width = (int) TestDataGenerator.getRandomNumber( 100, 600 ); 88 height = (int) TestDataGenerator.getRandomNumber( 100, 600 ); 89 90 legendProperties = new LegendProperties(); 91 TestDataGenerator.randomizeLegend( legendProperties ); 92 94 chartProperties = new ChartProperties(); 95 chartProperties.setBackgroundPaint( TestDataGenerator.getRandomPaint() ); 97 99 pieChart2D = new PieChart2D( pieChartDataSet, legendProperties, chartProperties, width, height ); 100 101 fileName = ChartTestDriver.OUTPUT_PATH + "pieChart2d" + i + ChartTestDriver.EXTENSION; 102 103 ImageMap imageMap; 104 if( createImageMap ) 105 { 106 pieChart2D.renderWithImageMap(); 107 imageMap = pieChart2D.getImageMap(); 108 } 109 else 110 { 111 imageMap = null; 112 } 113 114 115 ChartTestDriver.exportImage( pieChart2D, fileName ); 116 117 118 htmlGenerator.chartTableStart( "PieChart2D", fileName, imageMap ); 119 htmlGenerator.propertiesTableRowStart(); 120 pieChartDataSet.toHTML( htmlGenerator ); 121 htmlGenerator.propertiesTableRowStart(); 122 pieChart2D.toHTML( htmlGenerator, fileName ); 123 124 htmlGenerator.addLineBreak(); 125 } 126 127 htmlGenerator.saveFile(); 128 } 129 130 131 139 private static PieChartDataSet getPieChartDataSet( int numToCreate, int minValue, int maxValue ) throws ChartDataException 140 { 141 PieChart2DProperties properties = new PieChart2DProperties(); 142 properties.setBorderChartStroke( new ChartStroke( new BasicStroke ( 1.0f ), TestDataGenerator.getRandomPaint() ) ); 144 145 String [] labels = TestDataGenerator.getRandomStrings( numToCreate, (int) TestDataGenerator.getRandomNumber( 3, 20 ), false ); 146 Paint [] paints = TestDataGenerator.getRandomPaints( numToCreate ); 147 148 return new PieChartDataSet( "This is a test title", TestDataGenerator.getRandomNumbers( numToCreate, minValue, maxValue ), labels, paints, properties ); 149 } 150 151 152 158 public static void main( String [] args ) throws ChartDataException, PropertyException 159 { 160 161 PieTestDriver.test(); 162 167 168 198 } 199 200 201 } 202 | Popular Tags |