1 package org.krysalis.jcharts.chartData; 2 3 4 import java.awt.Paint ; 5 6 import org.krysalis.jcharts.chartData.interfaces.IRadarChartDataSet; 7 import org.krysalis.jcharts.properties.RadarChartProperties; 8 import org.krysalis.jcharts.test.HTMLGenerator; 9 10 11 16 final public class RadarChartDataSet extends DataSet implements IRadarChartDataSet 17 { 18 private String chartTitle; 19 private String [] axisLabels; 20 21 34 public RadarChartDataSet( String chartTitle, 35 double[][] data, 36 String [] legendLabels, 37 Paint [] paints, 38 String [] axisLabels, 39 RadarChartProperties chartTypeProperties ) throws ChartDataException 40 { 41 super( data, legendLabels, paints, chartTypeProperties ); 42 validateData(data,legendLabels,axisLabels,paints); 43 this.chartTitle = chartTitle; 44 this.axisLabels = axisLabels; 45 } 46 47 48 49 59 private void validateData( double[][] data, String [] legendLabels, String [] axisLabels, Paint [] paints ) throws ChartDataException 60 { 61 if( legendLabels != null && ( data.length != legendLabels.length ) ) 62 { 63 throw new ChartDataException( "There is not an one to one mapping of 'legend labels' to 'data items'." ); 64 } 65 66 if( data.length != paints.length ) 67 { 68 throw new ChartDataException( "There is not an one to one mapping of 'Paint' Implementations to 'data items'." ); 69 } 70 71 for (int i=1;i<data.length;i++) 72 if (data[i].length!=data[0].length) 73 throw new ChartDataException( "All data items should contain an equal number of values." ); 74 75 if (data.length>0 && axisLabels.length!=data[0].length) 76 throw new ChartDataException( "There is not a one to one mapping of axis labels to values per 'data item'." ); 77 78 } 79 80 81 86 public String getChartTitle() 87 { 88 return this.chartTitle; 89 } 90 91 92 93 101 public final double getValue( int dataset, int index ) throws ArrayIndexOutOfBoundsException 102 { 103 return super.data[ dataset ][ index ]; 104 } 105 106 107 112 public final int getNumberOfDataSets() 113 { 114 return this.data.length; 115 } 116 117 122 public final int getDataSetSize() 123 { 124 if (data.length==0) 125 return 0; 126 else return data[0].length; 127 } 128 129 135 public String getAxisLabel( int index ) 136 { 137 return this.axisLabels[ index ]; 138 } 139 140 141 146 public int getNumberOfAxisLabels() 147 { 148 if( this.axisLabels != null ) 149 { 150 return this.axisLabels.length; 151 } 152 else 153 { 154 return 0; 155 } 156 } 157 158 163 public void toHTML( HTMLGenerator htmlGenerator ) 164 { 165 super.toHTML( htmlGenerator ); 166 } 167 168 } 169 | Popular Tags |