You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(95) |
Sep
(42) |
Oct
(2) |
Nov
(7) |
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
|
Feb
(34) |
Mar
|
Apr
|
May
(64) |
Jun
(113) |
Jul
(60) |
Aug
(9) |
Sep
(6) |
Oct
(20) |
Nov
(11) |
Dec
|
From: Gann B. <ga...@us...> - 2004-10-18 03:04:24
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10190/src/java/org/krysalis/jcharts/axisChart Modified Files: AxisChart.java Log Message: Allow horizontal/bar combo charts. Allow rendering of combo charts in order of addition. Fixed bug when rending axis chart with no data. Index: AxisChart.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/AxisChart.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** AxisChart.java 21 Sep 2004 03:48:07 -0000 1.12 --- AxisChart.java 18 Oct 2004 03:04:14 -0000 1.13 *************** *** 69,72 **** --- 69,73 ---- import java.awt.font.FontRenderContext; import java.awt.geom.Rectangle2D; + import java.util.Iterator; *************** *** 85,88 **** --- 86,90 ---- private IAxisDataSeries iAxisDataSeries; + private boolean automaticComboChartLayout; *************** *** 107,112 **** --- 109,124 ---- this.axisProperties = axisProperties; this.iAxisDataSeries = iAxisDataSeries; + this.automaticComboChartLayout = true; } + /************************************************************************************************* + * + * @param automatic Layout of combo chart will be performed + * automatically; not in the order of addition + *************************************************************************************************/ + public void setAutomaticComboChartLayout( boolean automatic ) { + automaticComboChartLayout = automatic; + } + /************************************************************************************************* *************** *** 527,530 **** --- 539,593 ---- protected void overlayCharts() throws PropertyException, ChartDataException { + if (automaticComboChartLayout) + { + overlayChartsAutomatically(); + } + else + { + overlayChartsInOrder(); + } + } + + protected void overlayChartsInOrder() throws PropertyException, ChartDataException { + for (Iterator i = this.iAxisDataSeries.getIAxisPlotDataSetIterator(); i.hasNext();) + { + IAxisPlotDataSet iAxisPlotDataSet = (IAxisPlotDataSet) i.next(); + ChartType type = iAxisPlotDataSet.getChartType(); + if (type == ChartType.AREA_STACKED) + { + StackedAreaChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.AREA) + { + AreaChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.BAR) + { + BarChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.BAR_STACKED) + { + StackedBarChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.BAR_CLUSTERED) + { + ClusteredBarChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.STOCK ) + { + StockChart.render( this, ( IStockChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.LINE) + { + LineChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + else if (type == ChartType.POINT) + { + PointChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + } + } + + protected void overlayChartsAutomatically() throws PropertyException, ChartDataException { IAxisPlotDataSet iAxisPlotDataSet; *************** *** 606,610 **** /********************************************************************************************** * Currently, we only support the bar chart types being horizontal, and you can not have a ! * horizontally plotted bar chart in a combo chart. * * @throws PropertyException --- 669,674 ---- /********************************************************************************************** * Currently, we only support the bar chart types being horizontal, and you can not have a ! * horizontally plotted bar chart in a combo chart unless the combo ! * chart consists only of bar charts. * * @throws PropertyException *************** *** 614,623 **** if( axisProperties.isPlotHorizontal() ) { - //---if there is only one data set, there is no need to do any validations. - if( this.iAxisDataSeries.size() > 1 ) - { - throw new PropertyException( "You can not have a combo chart on a horizontal plot." ); - } - if( !this.allowHorizontalPlot() ) { --- 678,681 ---- *************** *** 629,633 **** /****************************************************************************************** ! * We only allow horizontal plots for the Bar Chart types in this release. * * @return boolean --- 687,692 ---- /****************************************************************************************** ! * We only allow horizontal plots for the Bar Chart types in this ! * release. But Combo Charts of only Bart Chart types are allowed. * * @return boolean *************** *** 635,654 **** private boolean allowHorizontalPlot() { ! if( this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.BAR ) != null ) { ! return true; } ! if( this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.BAR_STACKED ) != null ) { ! return true; } ! if( this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.BAR_CLUSTERED ) != null ) { ! return true; } ! return false; } --- 694,715 ---- private boolean allowHorizontalPlot() { ! int numBarCharts = 0; ! ! if( this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.BAR ) != null ) { ! numBarCharts++; } ! if( this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.BAR_STACKED ) != null ) { ! numBarCharts++; } ! if( this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.BAR_CLUSTERED ) != null ) { ! numBarCharts++; } ! return numBarCharts == this.iAxisDataSeries.size(); } |
From: Gann B. <ga...@us...> - 2004-10-18 03:04:24
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10190/src/java/org/krysalis/jcharts/chartData Modified Files: AxisDataSeries.java Log Message: Allow horizontal/bar combo charts. Allow rendering of combo charts in order of addition. Fixed bug when rending axis chart with no data. Index: AxisDataSeries.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/AxisDataSeries.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AxisDataSeries.java 1 Jul 2004 01:40:05 -0000 1.3 --- AxisDataSeries.java 18 Oct 2004 03:04:15 -0000 1.4 *************** *** 49,53 **** import java.util.Iterator; ! import java.util.HashMap; --- 49,53 ---- import java.util.Iterator; ! import java.util.LinkedHashMap; *************** *** 62,66 **** private String yAxisTitle; private String rightYAxisTitle = null; ! protected HashMap dataSets; protected int totalNumberOfDataSets; --- 62,66 ---- private String yAxisTitle; private String rightYAxisTitle = null; ! protected LinkedHashMap dataSets; // linked to maintain order of addition protected int totalNumberOfDataSets; *************** *** 80,84 **** this.yAxisTitle=yAxisTitle; this.chartTitle=chartTitle; ! dataSets = new HashMap(); } --- 80,84 ---- this.yAxisTitle=yAxisTitle; this.chartTitle=chartTitle; ! dataSets = new LinkedHashMap(); } *************** *** 98,102 **** this.rightYAxisTitle=rightYAxisTitle; this.chartTitle=chartTitle; ! dataSets = new HashMap(); } --- 98,102 ---- this.rightYAxisTitle=rightYAxisTitle; this.chartTitle=chartTitle; ! dataSets = new LinkedHashMap(); } |
From: Gann B. <ga...@us...> - 2004-10-18 03:04:23
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/documentation/content/xdocs/userGuide/axisCharts/combo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10190/src/documentation/content/xdocs/userGuide/axisCharts/combo Modified Files: index.xml Log Message: Allow horizontal/bar combo charts. Allow rendering of combo charts in order of addition. Fixed bug when rending axis chart with no data. Index: index.xml =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/content/xdocs/userGuide/axisCharts/combo/index.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** index.xml 5 Jun 2004 16:17:40 -0000 1.2 --- index.xml 18 Oct 2004 03:04:14 -0000 1.3 *************** *** 9,14 **** <title>Combo Charts</title> <p> ! </p> </section> </body> --- 9,36 ---- <title>Combo Charts</title> <p> ! jCharts allows you to combine multiple axis charts into one. This is done by adding more than one data set to the chart's data series. ! </p> ! <source> ! ... ! DataSeries dataSeries = new DataSeries(...); ! dataSeries.addIAxisPlotDataSet(dataSet1); ! dataSeries.addIAxisPlotDataSet(dataSet2); ! AxisChart axisChart = new AxisChart(dataSeries, ...); ! </source> ! </section> ! <section> ! <title>Horizontal Combo Charts</title> ! <p> ! Horizontal Combo Charts are not allowed unless all data sets are bar chart types. ! </p> ! </section> ! <section> ! <title>Rendering Order</title> ! <p> ! The elements of a Combo Chart will, by default, be rendered in the order jCharts thinks best. You can, however, require the elements to be rendered in order of addition to the data series as follows. </p> + <source> + axisChart.setAutomaticComboChartLayout(false); + </source> </section> </body> |
From: Gann B. <ga...@us...> - 2004-10-18 03:04:23
|
Update of /cvsroot/jcharts/krysalis-jcharts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10190 Modified Files: status.xml Log Message: Allow horizontal/bar combo charts. Allow rendering of combo charts in order of addition. Fixed bug when rending axis chart with no data. Index: status.xml =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/status.xml,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** status.xml 13 Aug 2004 01:55:12 -0000 1.22 --- status.xml 18 Oct 2004 03:04:13 -0000 1.23 *************** *** 57,60 **** --- 57,72 ---- Added 3D Stacked Bar Chart. </action> + <action dev="Gann Bierner" type="add" context="code"> + Allowed horizontal combo charts if all bar charts. + </action> + <action dev="Gann Bierner" type="add" context="code"> + Added option to render combo charts in order of addition. + </action> + <action dev="Gann Bierner" type="fix" context="code"> + Fixed exception rendering axis chart with no data. + </action> + <action dev="Gann Bierner" type="add" context="code"> + Added constructor to <code>ValueLabelRenderer</code> to use a custom number formatter. + </action> </release> |
From: Gann B. <ga...@us...> - 2004-10-18 03:04:23
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/documentation/content/xdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10190/src/documentation/content/xdocs Modified Files: credits.xml Log Message: Allow horizontal/bar combo charts. Allow rendering of combo charts in order of addition. Fixed bug when rending axis chart with no data. Index: credits.xml =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/content/xdocs/credits.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** credits.xml 16 Jun 2004 02:26:33 -0000 1.5 --- credits.xml 18 Oct 2004 03:04:14 -0000 1.6 *************** *** 27,30 **** --- 27,34 ---- <td>Added 3D Stacked Bar Chart.</td> </tr> + <tr> + <td>Gann Bierner</td> + <td>Added horizontal Combo Charts with Bar Charts. Added option for Combo Charts to be laid out in order of addition.</td> + </tr> </table> </section> |
From: Gann B. <ga...@us...> - 2004-10-18 02:58:58
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/customRenderers/axisValue/renderers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9149/src/java/org/krysalis/jcharts/axisChart/customRenderers/axisValue/renderers Modified Files: ValueLabelRenderer.java Log Message: Added constructor to set custom number formatter. Made some methods protected for further customization. Index: ValueLabelRenderer.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/customRenderers/axisValue/renderers/ValueLabelRenderer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ValueLabelRenderer.java 31 May 2004 16:23:03 -0000 1.3 --- ValueLabelRenderer.java 18 Oct 2004 02:58:49 -0000 1.4 *************** *** 72,89 **** ! /********************************************************************************** ! * ! * @param isCurrency ! * @param showGrouping ! * @param roundingPowerOfTen ! * @deprecated use the other Constructor ! **********************************************************************************/ ! public ValueLabelRenderer( boolean isCurrency, boolean showGrouping, int roundingPowerOfTen ) ! { ! this.numberFormat = NumericTagGroup.getNumberFormatInstance( isCurrency, false, showGrouping, roundingPowerOfTen ); ! } ! /********************************************************************************** * * @param isCurrency --- 72,99 ---- ! /********************************************************************************** ! * ! * @param format ! **********************************************************************************/ ! public ValueLabelRenderer( NumberFormat format ) ! { ! this.numberFormat = format; ! } ! ! ! /********************************************************************************** ! * ! * @param isCurrency ! * @param showGrouping ! * @param roundingPowerOfTen ! * @deprecated use the other Constructor ! **********************************************************************************/ ! public ValueLabelRenderer( boolean isCurrency, boolean showGrouping, int roundingPowerOfTen ) ! { ! this.numberFormat = NumericTagGroup.getNumberFormatInstance( isCurrency, false, showGrouping, roundingPowerOfTen ); ! } ! /********************************************************************************** * * @param isCurrency *************** *** 208,212 **** * @return float ************************************************************************************************/ ! private float calculateXVerticalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag ) { float x = axisValueRenderEvent.getValueX(); --- 218,222 ---- * @return float ************************************************************************************************/ ! protected float calculateXVerticalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag ) { float x = axisValueRenderEvent.getValueX(); *************** *** 231,235 **** * @return float ************************************************************************************************/ ! private float calculateYHorizontalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag ) { --- 241,245 ---- * @return float ************************************************************************************************/ ! protected float calculateYHorizontalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag ) { *************** *** 255,259 **** * @param isNegative ************************************************************************************************/ ! private float calculateXHorizontalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag, boolean isNegative ) --- 265,269 ---- * @param isNegative ************************************************************************************************/ ! protected float calculateXHorizontalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag, boolean isNegative ) *************** *** 347,351 **** * @param isNegative ************************************************************************************************/ ! private float calculateYVerticalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag, boolean isNegative ) --- 357,361 ---- * @param isNegative ************************************************************************************************/ ! protected float calculateYVerticalPlot( AxisValueRenderEvent axisValueRenderEvent, TextTag formattedTextTag, boolean isNegative ) |
From: Chris M. <ki...@us...> - 2004-09-21 03:54:33
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/types In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22819/src/java/org/krysalis/jcharts/types Modified Files: ChartType.java Log Message: Final fixes for truely independant dual Y axis Index: ChartType.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/types/ChartType.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChartType.java 13 Aug 2004 01:48:25 -0000 1.4 --- ChartType.java 21 Sep 2004 03:54:24 -0000 1.5 *************** *** 48,63 **** --- 48,74 ---- { public static final ChartType BAR=new ChartType( 0, false ); + public static final ChartType BAR_RHS=new ChartType( 0, false, true ); public static final ChartType BAR_CLUSTERED=new ChartType( 1, false ); + public static final ChartType BAR_CLUSTERED_RHS=new ChartType( 1, false, true ); public static final ChartType BAR_STACKED=new ChartType( 2, true ); + public static final ChartType BAR_STACKED_RHS=new ChartType( 2, true, true ); public static final ChartType LINE=new ChartType( 3, false ); + public static final ChartType LINE_RHS=new ChartType( 3, false, true ); public static final ChartType POINT=new ChartType( 4, false ); + public static final ChartType POINT_RHS=new ChartType( 4, false, true ); public static final ChartType AREA=new ChartType( 5, false ); + public static final ChartType AREA_RHS=new ChartType( 5, false, true ); public static final ChartType AREA_STACKED=new ChartType( 6, true ); + public static final ChartType AREA_STACKED_RHS=new ChartType( 6, true, true ); public static final ChartType STOCK=new ChartType( 7, false ); + public static final ChartType STOCK_RHS=new ChartType( 7, false, true ); public static final ChartType SCATTER_PLOT=new ChartType( 8, false ); + public static final ChartType SCATTER_PLOT_RHS=new ChartType( 8, false, true ); public static final ChartType BAR_STACKED_3D=new ChartType( 9, true ); + public static final ChartType BAR_STACKED_3D_RHS=new ChartType( 9, true, true ); public static final ChartType LINE_REGRESSION=new ChartType( 10, false ); private boolean stackedData; + private boolean plotAgainstRHS = false; *************** *** 74,77 **** --- 85,96 ---- } + private ChartType( int typeCode, boolean stackedData, boolean plotAgainstRHS ) + { + super( typeCode ); + + this.stackedData=stackedData; + this.plotAgainstRHS = plotAgainstRHS; + } + /*************************************************************************************** *************** *** 85,88 **** --- 104,112 ---- } + public boolean isPlottedAgainstRHS() + { + return this.plotAgainstRHS; + } + /*************************************************************************************** |
From: Chris M. <ki...@us...> - 2004-09-21 03:54:05
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22747/src/java/org/krysalis/jcharts/test Modified Files: DualAxisComboTestDriver.java Log Message: Final fixes for truely independant dual Y axis Index: DualAxisComboTestDriver.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test/DualAxisComboTestDriver.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DualAxisComboTestDriver.java 1 Jul 2004 02:06:40 -0000 1.1 --- DualAxisComboTestDriver.java 21 Sep 2004 03:53:52 -0000 1.2 *************** *** 115,123 **** Paint[] paints = {new Color(0x00, 0x56,0x99), new Color(0xD1,0xD6,0x18), new Color(0xB3,0x05,0x05) }; String[] legendLabels = {"Successful", "Warnings", "Failures"}; ! axisChartDataSet = new AxisChartDataSet(barData, legendLabels, paints, ChartType.BAR_STACKED, stackedBarChartProperties); ! // Stroke[] lineStrokes1 = {LineChartProperties.DASHED_LINE_STROKE, LineChartProperties.DASH_DOT_LINE_STROKE, LineChartProperties.DEFAULT_LINE_STROKE}; ! // Shape[] lineShapes1 = {PointChartProperties.SHAPE_TRIANGLE, PointChartProperties.SHAPE_CIRCLE, PointChartProperties.SHAPE_DIAMOND}; ! // LineChartProperties lineChartProperties1 = new LineChartProperties(lineStrokes1, lineShapes1); ! // axisChartDataSet = new AxisChartDataSet(barData, legendLabels, paints, ChartType.LINE, lineChartProperties1); dataSeries.addIAxisPlotDataSet(axisChartDataSet); --- 115,124 ---- Paint[] paints = {new Color(0x00, 0x56,0x99), new Color(0xD1,0xD6,0x18), new Color(0xB3,0x05,0x05) }; String[] legendLabels = {"Successful", "Warnings", "Failures"}; ! // axisChartDataSet = new AxisChartDataSet(barData, legendLabels, paints, ChartType.BAR_STACKED, stackedBarChartProperties); ! // this data really for a bar chart, but I am testing one set of lines plotted against the left Y axis versus another set of lines plotted against the right Y axis ! Stroke[] lineStrokes1 = {LineChartProperties.DASHED_LINE_STROKE, LineChartProperties.DASH_DOT_LINE_STROKE, LineChartProperties.DEFAULT_LINE_STROKE}; ! Shape[] lineShapes1 = {PointChartProperties.SHAPE_TRIANGLE, PointChartProperties.SHAPE_CIRCLE, PointChartProperties.SHAPE_DIAMOND}; ! LineChartProperties lineChartProperties1 = new LineChartProperties(lineStrokes1, lineShapes1); ! axisChartDataSet = new AxisChartDataSet(barData, legendLabels, paints, ChartType.LINE, lineChartProperties1); dataSeries.addIAxisPlotDataSet(axisChartDataSet); *************** *** 135,139 **** LineChartProperties lineChartProperties = new LineChartProperties(lineStrokes, lineShapes); ! axisChartDataSet = new AxisChartDataSet(lineData, true, lineLegendLabels, linePaints, ChartType.LINE, lineChartProperties); dataSeries.addIAxisPlotDataSet(axisChartDataSet); --- 136,141 ---- LineChartProperties lineChartProperties = new LineChartProperties(lineStrokes, lineShapes); ! axisChartDataSet = new AxisChartDataSet(lineData, lineLegendLabels, linePaints, ChartType.LINE_RHS, lineChartProperties); ! // Note chart type of LINE_RHS = plot against right hand side dataSeries.addIAxisPlotDataSet(axisChartDataSet); |
From: Chris M. <ki...@us...> - 2004-09-21 03:50:00
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/processors In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22151/src/java/org/krysalis/jcharts/chartData/processors Modified Files: AxisChartDataProcessor.java Log Message: Final fixes for truely independant dual Y axis Index: AxisChartDataProcessor.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/processors/AxisChartDataProcessor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AxisChartDataProcessor.java 1 Jul 2004 01:43:35 -0000 1.3 --- AxisChartDataProcessor.java 21 Sep 2004 03:49:50 -0000 1.4 *************** *** 162,166 **** iAxisPlotDataSet = ( IAxisPlotDataSet ) iterator.next(); ! if ( iAxisPlotDataSet.getPlotAgainstRHS() ) { // save the min and max values for restoration later on tempMin = this.getMinValue(); --- 162,166 ---- iAxisPlotDataSet = ( IAxisPlotDataSet ) iterator.next(); ! if ( iAxisPlotDataSet.isPlottedAgainstRHS() ) { // save the min and max values for restoration later on tempMin = this.getMinValue(); *************** *** 188,192 **** } } ! if ( iAxisPlotDataSet.getPlotAgainstRHS() ) { // set the RHS min and max values and restore the current LHS values this.setRightMinValue(min); --- 188,192 ---- } } ! if ( iAxisPlotDataSet.isPlottedAgainstRHS() ) { // set the RHS min and max values and restore the current LHS values this.setRightMinValue(min); |
From: Chris M. <ki...@us...> - 2004-09-21 03:49:59
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/interfaces In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22151/src/java/org/krysalis/jcharts/chartData/interfaces Modified Files: IAxisPlotDataSet.java Log Message: Final fixes for truely independant dual Y axis Index: IAxisPlotDataSet.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/interfaces/IAxisPlotDataSet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IAxisPlotDataSet.java 1 Jul 2004 01:42:29 -0000 1.2 --- IAxisPlotDataSet.java 21 Sep 2004 03:49:50 -0000 1.3 *************** *** 71,75 **** * @return boolean *******************************************************************************************/ ! public boolean getPlotAgainstRHS(); /****************************************************************************************** --- 71,75 ---- * @return boolean *******************************************************************************************/ ! public boolean isPlottedAgainstRHS(); /****************************************************************************************** |
From: Chris M. <ki...@us...> - 2004-09-21 03:49:59
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22151/src/java/org/krysalis/jcharts/chartData Modified Files: AxisChartDataSet.java ScatterPlotDataSet.java StockChartDataSet.java Log Message: Final fixes for truely independant dual Y axis Index: StockChartDataSet.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/StockChartDataSet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StockChartDataSet.java 1 Jul 2004 02:05:47 -0000 1.2 --- StockChartDataSet.java 21 Sep 2004 03:49:50 -0000 1.3 *************** *** 66,70 **** private Paint[] paints; private StockChartProperties stockChartProperties; - private boolean plotAgainstRHS = false; --- 66,69 ---- *************** *** 348,354 **** * @see ChartType *******************************************************************************************/ ! public final boolean getPlotAgainstRHS() { ! return this.plotAgainstRHS; } --- 347,353 ---- * @see ChartType *******************************************************************************************/ ! public final boolean isPlottedAgainstRHS() { ! return this.chartType.isPlottedAgainstRHS(); } Index: AxisChartDataSet.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/AxisChartDataSet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AxisChartDataSet.java 1 Jul 2004 02:04:12 -0000 1.3 --- AxisChartDataSet.java 21 Sep 2004 03:49:50 -0000 1.4 *************** *** 53,57 **** { private ChartType chartType; - private boolean plotAgainstRHS = false; --- 53,56 ---- *************** *** 78,106 **** } - - /****************************************************************************************** - * Constructor - * - * @param data the data sets to be displayed in the chart. - * @param plotAgainstRHS whether to plot the data set against the right hand Y Axis - * @param legendLabels if this is: NULL there will be no Legend. Otherwise, there must be an - * one to one mapping of labels to data sets. - * @param paints paints to use for the data sets. There must be an one to one mapping of - * labels to data sets. - * @param chartType constant defining how this data should be rendered - * @param chartTypeProperties properties Object specific to the type of chart you are rendering. - * @throws ChartDataException if data is not in correct form. - *******************************************************************************************/ - public AxisChartDataSet( double[][] data, boolean plotAgainstRHS, - String[] legendLabels, - Paint[] paints, - ChartType chartType, - ChartTypeProperties chartTypeProperties ) throws ChartDataException - { - super( data, legendLabels, paints, chartTypeProperties ); - this.chartType=chartType; - this.plotAgainstRHS = plotAgainstRHS; - } - /************************************************************************************************ * Performs a limited validation of data. This is static and not called by the rendering engine --- 77,80 ---- *************** *** 157,163 **** * @see ChartType *******************************************************************************************/ ! public final boolean getPlotAgainstRHS() { ! return this.plotAgainstRHS; } --- 131,137 ---- * @see ChartType *******************************************************************************************/ ! public final boolean isPlottedAgainstRHS() { ! return this.chartType.isPlottedAgainstRHS(); } Index: ScatterPlotDataSet.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/chartData/ScatterPlotDataSet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ScatterPlotDataSet.java 1 Jul 2004 02:05:47 -0000 1.3 --- ScatterPlotDataSet.java 21 Sep 2004 03:49:50 -0000 1.4 *************** *** 64,68 **** private int numDataItems= -1; - private boolean plotAgainstRHS = false; --- 64,67 ---- *************** *** 248,258 **** /****************************************************************************************** * Returns whether the data set should be plotted against the right hand Y axis * ! * @return plotAgainstRHS * @see ChartType *******************************************************************************************/ ! public final boolean getPlotAgainstRHS() { ! return this.plotAgainstRHS; } --- 247,258 ---- /****************************************************************************************** * Returns whether the data set should be plotted against the right hand Y axis + * Always false as ChartType hardcoded to SCATTER_PLOT * ! * @return false * @see ChartType *******************************************************************************************/ ! public final boolean isPlottedAgainstRHS() { ! return false; } |
From: Chris M. <ki...@us...> - 2004-09-21 03:48:23
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21917/src/java/org/krysalis/jcharts/axisChart Modified Files: AxisChart.java LineChart.java Log Message: Final fixes for truely independant dual Y axis Index: LineChart.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/LineChart.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LineChart.java 1 Jul 2004 01:26:20 -0000 1.4 --- LineChart.java 21 Sep 2004 03:48:07 -0000 1.5 *************** *** 70,74 **** float minRHSValue = 0; float minLHSValue = 0; ! if (iAxisChartDataSet.getPlotAgainstRHS() == true) { float maxLHSValue = (float)axisChart.getYAxis().getScaleCalculator().getMaxValue(); float maxRHSValue = (float)axisChart.getYAxis().getRightScaleCalculator().getMaxValue(); --- 70,74 ---- float minRHSValue = 0; float minLHSValue = 0; ! if (iAxisChartDataSet.isPlottedAgainstRHS()) { float maxLHSValue = (float)axisChart.getYAxis().getScaleCalculator().getMaxValue(); float maxRHSValue = (float)axisChart.getYAxis().getRightScaleCalculator().getMaxValue(); Index: AxisChart.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/AxisChart.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** AxisChart.java 13 Aug 2004 01:47:01 -0000 1.11 --- AxisChart.java 21 Sep 2004 03:48:07 -0000 1.12 *************** *** 534,537 **** --- 534,544 ---- StackedAreaChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); } + if ( this.axisProperties.getRightYAxisProperties().getShowAxis() ) { + iAxisPlotDataSet = this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.AREA_STACKED_RHS ); + if( iAxisPlotDataSet != null ) + { + StackedAreaChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } + } iAxisPlotDataSet = this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.AREA ); if( iAxisPlotDataSet != null ) *************** *** 576,579 **** --- 583,591 ---- LineChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); } + iAxisPlotDataSet = this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.LINE_RHS ); + if( iAxisPlotDataSet != null ) + { + LineChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } iAxisPlotDataSet = this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.POINT ); |
From: Nathaniel G. A. <nat...@us...> - 2004-08-16 23:13:25
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24768/src/java/org/krysalis/jcharts/properties/util Modified Files: ChartStroke.java Log Message: made Stroke constants transient so Object can be Serialized Index: ChartStroke.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/util/ChartStroke.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChartStroke.java 9 Jun 2004 01:42:48 -0000 1.3 --- ChartStroke.java 16 Aug 2004 23:11:48 -0000 1.4 *************** *** 47,52 **** public class ChartStroke extends ChartItem { ! private static final Stroke DEFAULT_STROKE = new BasicStroke( 1.0f ); ! private static final Stroke DEFAULT_STROKE_1_5 = new BasicStroke( 1.5f ); public static final ChartStroke DEFAULT_AXIS = new ChartStroke( DEFAULT_STROKE_1_5, Color.black ); --- 47,52 ---- public class ChartStroke extends ChartItem { ! private static transient final Stroke DEFAULT_STROKE = new BasicStroke( 1.0f ); ! private static transient final Stroke DEFAULT_STROKE_1_5 = new BasicStroke( 1.5f ); public static final ChartStroke DEFAULT_AXIS = new ChartStroke( DEFAULT_STROKE_1_5, Color.black ); |
From: Nathaniel G. A. <nat...@us...> - 2004-08-16 23:13:09
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24583/src/java/org/krysalis/jcharts/properties Modified Files: PieChart2DProperties.java ScatterPlotProperties.java LegendProperties.java StockChartProperties.java PointChartProperties.java LineChartProperties.java Log Message: make Stroke constants transient so could Object could be Serialized Index: StockChartProperties.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/StockChartProperties.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** StockChartProperties.java 8 Aug 2003 08:51:27 -0000 1.2 --- StockChartProperties.java 16 Aug 2004 23:10:45 -0000 1.3 *************** *** 50,54 **** public final class StockChartProperties extends AxisChartTypeProperties { ! public static final Stroke DEFAULT_STROKE= new BasicStroke( 1.5f ); private Stroke hiLowStroke; --- 50,54 ---- public final class StockChartProperties extends AxisChartTypeProperties { ! public static transient final Stroke DEFAULT_STROKE= new BasicStroke( 1.5f ); private Stroke hiLowStroke; Index: LegendProperties.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/LegendProperties.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LegendProperties.java 5 Jul 2003 13:23:50 -0000 1.3 --- LegendProperties.java 16 Aug 2004 23:10:45 -0000 1.4 *************** *** 53,57 **** public static final Font DEFAULT_FONT = new Font( "Serif", Font.PLAIN, 12 ); public static final Paint DEFAULT_FONT_PAINT = Color.black; ! public static final Stroke DEFAULT_ICON_BORDER_STROKE = new BasicStroke( 1.0f ); public static final Paint DEFAULT_ICON_BORDER_PAINT = Color.black; --- 53,57 ---- public static final Font DEFAULT_FONT = new Font( "Serif", Font.PLAIN, 12 ); public static final Paint DEFAULT_FONT_PAINT = Color.black; ! public static transient final Stroke DEFAULT_ICON_BORDER_STROKE = new BasicStroke( 1.0f ); public static final Paint DEFAULT_ICON_BORDER_PAINT = Color.black; Index: ScatterPlotProperties.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/ScatterPlotProperties.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ScatterPlotProperties.java 17 May 2003 17:00:39 -0000 1.1 --- ScatterPlotProperties.java 16 Aug 2004 23:10:45 -0000 1.2 *************** *** 49,53 **** final public class ScatterPlotProperties extends AxisChartTypeProperties { ! public static final Stroke DEFAULT_LINE_STROKE=new BasicStroke( 1.5f ); private Stroke[] lineStrokes; --- 49,53 ---- final public class ScatterPlotProperties extends AxisChartTypeProperties { ! public static transient final Stroke DEFAULT_LINE_STROKE=new BasicStroke( 1.5f ); private Stroke[] lineStrokes; Index: PointChartProperties.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/PointChartProperties.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PointChartProperties.java 17 May 2003 17:00:36 -0000 1.1 --- PointChartProperties.java 16 Aug 2004 23:10:45 -0000 1.2 *************** *** 51,55 **** final public class PointChartProperties extends AxisChartTypeProperties { ! public final static Stroke DEFAULT_POINT_BORDER_STROKE = new BasicStroke( 1.0f ); public final static Shape SHAPE_SQUARE = new Rectangle2D.Double( 0, 0, 10, 10 ); --- 51,55 ---- final public class PointChartProperties extends AxisChartTypeProperties { ! public final transient static Stroke DEFAULT_POINT_BORDER_STROKE = new BasicStroke( 1.0f ); public final static Shape SHAPE_SQUARE = new Rectangle2D.Double( 0, 0, 10, 10 ); Index: PieChart2DProperties.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/PieChart2DProperties.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PieChart2DProperties.java 31 May 2004 16:31:07 -0000 1.4 --- PieChart2DProperties.java 16 Aug 2004 23:10:45 -0000 1.5 *************** *** 51,62 **** public class PieChart2DProperties extends ChartTypeProperties implements HTMLTestable { - /* - public static final Paint DEFAULT_BORDER_PAINT = Color.black; - public static final Stroke DEFAULT_BORDER_STROKE = new BasicStroke( 1.5f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND ); - - private Paint borderPaint = DEFAULT_BORDER_PAINT; - private Stroke borderStroke = DEFAULT_BORDER_STROKE; - */ - private ChartStroke borderChartStroke= ChartStroke.DEFAULT_PIE_OUTLINE; --- 51,54 ---- Index: LineChartProperties.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/properties/LineChartProperties.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LineChartProperties.java 1 Jul 2004 01:49:34 -0000 1.3 --- LineChartProperties.java 16 Aug 2004 23:10:45 -0000 1.4 *************** *** 55,62 **** private static final float DASH_DOT[] = {5.0f, 1.0f}; ! public static final Stroke DEFAULT_LINE_STROKE=new BasicStroke( 1.5f ); ! public static final Stroke DOT_LINE_STROKE = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, DOT[0], DOT , 0.0f); ! public static final Stroke DASHED_LINE_STROKE = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, DASH[0], DASH , 0.0f); ! public static final Stroke DASH_DOT_LINE_STROKE = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, DASH_DOT , 0.0f); private Stroke[] lineStrokes; --- 55,62 ---- private static final float DASH_DOT[] = {5.0f, 1.0f}; ! public static transient final Stroke DEFAULT_LINE_STROKE=new BasicStroke( 1.5f ); ! public static transient final Stroke DOT_LINE_STROKE = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, DOT[0], DOT , 0.0f); ! public static transient final Stroke DASHED_LINE_STROKE = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, DASH[0], DASH , 0.0f); ! public static transient final Stroke DASH_DOT_LINE_STROKE = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 1.0f, DASH_DOT , 0.0f); private Stroke[] lineStrokes; |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:57:13
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22359/src/java/org/krysalis/jcharts/axisChart Modified Files: RegressionChart.java Log Message: added Nathan Feger as author in javadoc comment Index: RegressionChart.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/RegressionChart.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RegressionChart.java 13 Aug 2004 01:47:19 -0000 1.1 --- RegressionChart.java 13 Aug 2004 01:57:05 -0000 1.2 *************** *** 1,38 **** ! /***************************************************************************************** ! * File Info: $Id$ ! * Copyright (C) 2002 Author: Nathaniel G. Auvil Contributor(s): ! * * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved. ! * ! * Redistribution and use of this software and associated documentation ("Software"), with ! * or without modification, are permitted provided that the following conditions are met: ! * * 1. Redistributions of source code must retain copyright statements and notices. ! * Redistributions must also contain a copy of this document. ! * ! * 2. Redistributions in binary form must reproduce the above copyright notice, this list ! * of conditions and the following disclaimer in the documentation and/or other materials ! * provided with the distribution. ! * * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote ! * products derived from this Software without prior written permission of Nathaniel G. ! * Auvil. For written permission, please contact nat...@us... ! * ! * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" ! * appear in their names without prior written permission of Nathaniel G. Auvil. jCharts ! * is a registered trademark of Nathaniel G. Auvil. ! * * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/). ! * * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY ! * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ! * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT ! * SHALL jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ! * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT ! * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE ! * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE ! ****************************************************************************************/ package org.krysalis.jcharts.axisChart; --- 1,35 ---- ! /*********************************************************************************************** * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved. ! * ! * Redistribution and use of this software and associated documentation ("Software"), with or ! * without modification, are permitted provided that the following conditions are met: ! * * 1. Redistributions of source code must retain copyright statements and notices. ! * Redistributions must also contain a copy of this document. ! * ! * 2. Redistributions in binary form must reproduce the above copyright notice, this list of ! * conditions and the following disclaimer in the documentation and/or other materials ! * provided with the distribution. ! * * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote ! * products derived from this Software without prior written permission of Nathaniel G. ! * Auvil. For written permission, please contact nat...@us... ! * ! * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" appear ! * in their names without prior written permission of Nathaniel G. Auvil. jCharts is a ! * registered trademark of Nathaniel G. Auvil. ! * * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/). ! * * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY ! * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ! * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ! * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT LIABILITY, OR TORT ! * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ! * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE ! ************************************************************************************************/ package org.krysalis.jcharts.axisChart; *************** *** 52,55 **** --- 49,57 ---- + /************************************************************************************** + * + * @author Nathan Feger + * @version $Id$ + ************************************************************************************/ public class RegressionChart { |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:55:21
|
Update of /cvsroot/jcharts/krysalis-jcharts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22005 Modified Files: status.xml Log Message: added credit to Nathan Feger for the Line Regression Chart for Alpha 2 Index: status.xml =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/status.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** status.xml 16 Jun 2004 02:26:51 -0000 1.21 --- status.xml 13 Aug 2004 01:55:12 -0000 1.22 *************** *** 45,49 **** automatically be used for entries of type <foo>. --> ! <action dev="nathaniel_auvil" type="fix" context="code"> <code>PieChart2D</code> was not rendering correctly when Legend was placed on the LEFT side. </action> --- 45,52 ---- automatically be used for entries of type <foo>. --> ! <action dev="Nathan Feger" type="add" context="code"> ! <code>Line Regression Chart</code> has been added as a new Chart Type. ! </action> ! <action dev="Nathaniel Auvil" type="fix" context="code"> <code>PieChart2D</code> was not rendering correctly when Legend was placed on the LEFT side. </action> *************** *** 57,78 **** <release version="1.0.0 alpha 1" date="5-31-2004"> ! <action dev="nathaniel_auvil" type="update" context="admin"> Initial Import of the <code>krysalis-jcharts</code> CVS module. </action> ! <action dev="nathaniel_auvil" type="update" context="code"> Moved codebase into new namespace <code>org.krysalis.jcharts</code> </action> ! <action dev="nathaniel_auvil" type="add" context="code"> Added flag to <code>ChartProperties</code> which allows users to toggle Anti-Aliasing on the charts. The default is <code>true</code>, but if you are embeding a chart in a PDF file, set it to <code>false</code> in order to get a cleaner image. </action> ! <action dev="nathaniel_auvil" type="fix" context="code"> Refactored <code>PieChart2D</code> and fixed a couple undocumented bugs with the labelling code. </action> ! <action dev="nathaniel_auvil" type="update" context="code"> Refactored <code>PieChart2DProperties</code> to use a <code>ChartStroke</code> Object for the border stroke. </action> ! <action dev="nathaniel_auvil" type="add" context="code"> Re-introduced the <code>PieChart3D</code>! It was in jCharts 0.2 but disappeared there after. </action> --- 60,81 ---- <release version="1.0.0 alpha 1" date="5-31-2004"> ! <action dev="Nathaniel Auvil" type="update" context="admin"> Initial Import of the <code>krysalis-jcharts</code> CVS module. </action> ! <action dev="Nathaniel Auvil" type="update" context="code"> Moved codebase into new namespace <code>org.krysalis.jcharts</code> </action> ! <action dev="Nathaniel Auvil" type="add" context="code"> Added flag to <code>ChartProperties</code> which allows users to toggle Anti-Aliasing on the charts. The default is <code>true</code>, but if you are embeding a chart in a PDF file, set it to <code>false</code> in order to get a cleaner image. </action> ! <action dev="Nathaniel Auvil" type="fix" context="code"> Refactored <code>PieChart2D</code> and fixed a couple undocumented bugs with the labelling code. </action> ! <action dev="Nathaniel Auvil" type="update" context="code"> Refactored <code>PieChart2DProperties</code> to use a <code>ChartStroke</code> Object for the border stroke. </action> ! <action dev="Nathaniel Auvil" type="add" context="code"> Re-introduced the <code>PieChart3D</code>! It was in jCharts 0.2 but disappeared there after. </action> |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:48:38
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/types In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20659/src/java/org/krysalis/jcharts/types Modified Files: ChartType.java Log Message: Index: ChartType.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/types/ChartType.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChartType.java 14 Jun 2004 05:00:53 -0000 1.3 --- ChartType.java 13 Aug 2004 01:48:25 -0000 1.4 *************** *** 57,61 **** public static final ChartType SCATTER_PLOT=new ChartType( 8, false ); public static final ChartType BAR_STACKED_3D=new ChartType( 9, true ); ! private boolean stackedData; --- 57,61 ---- public static final ChartType SCATTER_PLOT=new ChartType( 8, false ); public static final ChartType BAR_STACKED_3D=new ChartType( 9, true ); ! public static final ChartType LINE_REGRESSION=new ChartType( 10, false ); private boolean stackedData; |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:47:55
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20511/src/java/org/krysalis/jcharts/test Added Files: RegressionTestDriver.java Log Message: line regression --- NEW FILE: RegressionTestDriver.java --- /*********************************************************************************************** * File Info: $Id: RegressionTestDriver.java,v 1.1 2004/08/13 01:47:46 nathaniel_auvil Exp $ * Copyright (C) 2000 * Author: Nathaniel G. Auvil * Contributor(s): * * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved. * * Redistribution and use of this software and associated documentation * ("Software"), with or without modification, are permitted provided * that the following conditions are met: * * 1. Redistributions of source code must retain copyright * statements and notices. Redistributions must also contain a * copy of this document. * * 2. Redistributions in binary form must reproduce the * above copyright notice, this list of conditions and the * following disclaimer in the documentation and/or other * materials provided with the distribution. * * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to * endorse or promote products derived from this Software without * prior written permission of Nathaniel G. Auvil. For written * permission, please contact nat...@us... * * 4. Products derived from this Software may not be called "jCharts" * nor may "jCharts" appear in their names without prior written * permission of Nathaniel G. Auvil. jCharts is a registered * trademark of Nathaniel G. Auvil. * * 5. Due credit should be given to the jCharts Project * (http://jcharts.sourceforge.net/). * * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL * jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. ************************************************************************************************/ package org.krysalis.jcharts.test; import org.krysalis.jcharts.axisChart.AxisChart; import org.krysalis.jcharts.chartData.*; import org.krysalis.jcharts.properties.*; import org.krysalis.jcharts.types.ChartType; import java.awt.*; /****************************************************************************************** * This file provides examples of how to create all the different chart types provided by * this package. * *******************************************************************************************/ class RegressionTestDriver extends AxisChartTestBase { boolean supportsImageMap() { return true; } /****************************************************************************************** * Separate this so can use for combo chart test * * @param numberOfDataSets ******************************************************************************************/ static ChartTypeProperties getChartTypeProperties( int numberOfDataSets ) { Stroke[] strokes = new Stroke[ numberOfDataSets ]; for( int j = 0; j < numberOfDataSets; j++ ) { strokes[ j ] = LineChartProperties.DEFAULT_LINE_STROKE; } strokes[ 0 ] = new BasicStroke( 3.0f ); Shape[] shapes = new Shape[ numberOfDataSets ]; for( int j = 0; j < numberOfDataSets; j++ ) { shapes[ j ] = PointChartProperties.SHAPE_DIAMOND; } shapes[ 0 ] = PointChartProperties.SHAPE_CIRCLE; return new LineChartProperties( strokes, shapes ); } /****************************************************************************************** * * ******************************************************************************************/ DataSeries getDataSeries() throws ChartDataException { DataSeries dataSeries; AxisChartDataSet axisChartDataSet; int dataSize = (int) TestDataGenerator.getRandomNumber( 3, 3 ); int numberOfDataSets = ( int ) TestDataGenerator.getRandomNumber( 1, 1 ); dataSeries = super.createDataSeries( dataSize ); axisChartDataSet = super.createAxisChartDataSet( ChartType.LINE_REGRESSION, getChartTypeProperties( numberOfDataSets ), numberOfDataSets, dataSize, 10, 5000 ); dataSeries.addIAxisPlotDataSet( axisChartDataSet ); return dataSeries; } /****************************************************************************************** * * ****************************************************************************************** DataSeries getDataSeries() throws ChartDataException { String[] xAxisLabels={"1", "2", "3", "4", "5"}; DataSeries dataSeries=new DataSeries( xAxisLabels, "numbers", "numbers", "Bug #559177" ); AxisChartDataSet axisChartDataSet; double[][] data={{1, 2, 3, 4, 5}, {7, 8, Double.NaN, Double.NaN, Double.NaN}, {Double.NaN, Double.NaN, Double.NaN, Double.NaN, 2}}; String[] legendLabels={"set 1", "set 2", "set 3"}; Paint[] paints={Color.blue, Color.red, Color.green}; axisChartDataSet=new AxisChartDataSet( data, legendLabels, paints, ChartType.LINE, this.getChartTypeProperties( 3 ) ); dataSeries.addIAxisPlotDataSet( axisChartDataSet ); return dataSeries; } */ public static void main( String[] args ) throws ChartDataException, PropertyException { LineChartProperties lineChartProperties= (LineChartProperties) getChartTypeProperties( 1 ); double[][] data= { { 280, 16, 150, 90 } }; Paint[] paints= { Color.blue }; String[] legendLabels= { "Test Legend Label" }; AxisChartDataSet axisChartDataSet = new AxisChartDataSet( data, legendLabels, paints, ChartType.LINE_REGRESSION, lineChartProperties ); LineChartProperties lineChartProperties2= (LineChartProperties) getChartTypeProperties( 1 ); double[][] data2= { { 280, 16, 150, 90 } }; Paint[] paints2= { Color.red }; String[] legendLabels2= { "Test Legend Label" }; AxisChartDataSet axisChartDataSet2 = new AxisChartDataSet( data2, legendLabels2, paints2, ChartType.LINE, lineChartProperties2 ); String[] axisLabels= { "1900", "1950", "2000", "2050" }; DataSeries dataSeries = new DataSeries( axisLabels, "X-Axis Title", "Y-Axis Title", "Chart Title" ); dataSeries.addIAxisPlotDataSet( axisChartDataSet ); dataSeries.addIAxisPlotDataSet( axisChartDataSet2 ); ChartProperties chartProperties= new ChartProperties(); AxisProperties axisProperties= new AxisProperties( false ); axisProperties.getYAxisProperties().setShowAxisLabels( false ); /* axisProperties.getYAxisProperties().setShowRightAxis( true ); axisProperties.getYAxisProperties().setMinRightAxis( 0 ); axisProperties.getYAxisProperties().setMaxRightAxis( 1000 ); */ axisProperties.getXAxisProperties().setShowAxisLabels( true ); // DataAxisProperties yAxis= (DataAxisProperties) axisProperties.getYAxisProperties(); // yAxis.setUserDefinedScale( -10, 50 ); // yAxis.setNumItems( 4 ); // yAxis.setRoundToNearest( 1 ); LegendProperties legendProperties= new LegendProperties(); AxisChart axisChart= new AxisChart( dataSeries, chartProperties, axisProperties, legendProperties, 500, 400 ); ChartTestDriver.exportImage( axisChart, "RegressionLineTest.png" ); } } |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:47:36
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20451/src/java/org/krysalis/jcharts/axisChart Added Files: RegressionChart.java Log Message: --- NEW FILE: RegressionChart.java --- /***************************************************************************************** * File Info: $Id: RegressionChart.java,v 1.1 2004/08/13 01:47:19 nathaniel_auvil Exp $ * Copyright (C) 2002 Author: Nathaniel G. Auvil Contributor(s): * * Copyright 2002 (C) Nathaniel G. Auvil. All Rights Reserved. * * Redistribution and use of this software and associated documentation ("Software"), with * or without modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain copyright statements and notices. * Redistributions must also contain a copy of this document. * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * 3. The name "jCharts" or "Nathaniel G. Auvil" must not be used to endorse or promote * products derived from this Software without prior written permission of Nathaniel G. * Auvil. For written permission, please contact nat...@us... * * 4. Products derived from this Software may not be called "jCharts" nor may "jCharts" * appear in their names without prior written permission of Nathaniel G. Auvil. jCharts * is a registered trademark of Nathaniel G. Auvil. * * 5. Due credit should be given to the jCharts Project (http://jcharts.sourceforge.net/). * * THIS SOFTWARE IS PROVIDED BY Nathaniel G. Auvil AND CONTRIBUTORS ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL jCharts OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE ****************************************************************************************/ package org.krysalis.jcharts.axisChart; import java.awt.*; import java.awt.geom.*; import java.util.Vector; import java.util.Enumeration; import org.krysalis.jcharts.axisChart.axis.YAxis; import org.krysalis.jcharts.chartData.interfaces.IAxisChartDataSet; import org.krysalis.jcharts.chartData.interfaces.IDataSeries; import org.krysalis.jcharts.imageMap.CircleMapArea; import org.krysalis.jcharts.properties.LineChartProperties; import org.krysalis.jcharts.properties.PropertyException; public class RegressionChart { // STUFF FOR REGRESSION int numberLocs = 0; int sumxx = 0; int sumyy = 0; int sumxy = 0; int sumx = 0; int sumy = 0; double Sxx, Sxy, Syy; double a, b; //regression coefficients Vector v = new Vector(); //vector of points Vector residuals = new Vector(); //vector of residuals public RegressionChart() { }; private double figureY( YAxis yAxis, double num ) { return yAxis.computeAxisCoordinate( yAxis.getOrigin(), num, yAxis.getScaleCalculator().getMinValue() ); } /*************************************************************************************** * Draws the chart * * @param axisChart * @param iAxisChartDataSet * @throws PropertyException **************************************************************************************/ public void render( AxisChart axisChart, IAxisChartDataSet iAxisChartDataSet ) throws PropertyException { Graphics2D g2d = axisChart.getGraphics2D(); LineChartProperties lineChartProperties = (LineChartProperties) iAxisChartDataSet.getChartTypeProperties(); lineChartProperties.validate( iAxisChartDataSet ); //DataAxisProperties dataAxisProperties= (DataAxisProperties) // axisChart.getAxisProperties().getYAxisProperties(); IDataSeries iDataSeries = (IDataSeries) axisChart.getIAxisDataSeries(); //---cache the computed values float[][] yAxisCoordinates = new float[iAxisChartDataSet.getNumberOfDataSets()][iAxisChartDataSet.getNumberOfDataItems()]; //---need this for image map calculation float xMapCoordinate = axisChart.getXAxis().getTickStart(); //LOOP for( int j = 0; j < iAxisChartDataSet.getNumberOfDataItems(); j++ ) { //LOOP for( int i = 0; i < yAxisCoordinates.length; i++ ) { if( iAxisChartDataSet.getValue( i, j ) != Double.NaN ) { yAxisCoordinates[i][j] = axisChart.getYAxis().computeAxisCoordinate( axisChart.getYAxis().getOrigin(), iAxisChartDataSet.getValue( i, j ), axisChart .getYAxis() .getScaleCalculator() .getMinValue() ); addLoc( new Loc( j, iAxisChartDataSet.getValue( i, j ) ) ); //---if we are generating an ImageMap, store the image coordinates if( axisChart.getGenerateImageMapFlag() ) { String label; if( axisChart.getXAxis().getAxisLabelsGroup() != null ) { label = axisChart.getXAxis().getAxisLabelsGroup().getTextTag( j ).getText(); } else { label = null; } axisChart.getImageMap().addImageMapArea( new CircleMapArea( xMapCoordinate, yAxisCoordinates[i][j], iAxisChartDataSet.getValue( i, j ), label, iAxisChartDataSet.getLegendLabel( i ) ) ); } } else { yAxisCoordinates[i][j] = Float.NaN; } } xMapCoordinate += axisChart.getXAxis().getScalePixelWidth(); } AffineTransform originalTransform = null; double[] cornerXOffset = null; double[] cornerYOffset = null; //---check if there are any points to display if( lineChartProperties.getShapes() != null ) { //---when centering the shapes on the points, need x and y offset to do this cornerXOffset = new double[iAxisChartDataSet.getNumberOfDataSets()]; cornerYOffset = new double[iAxisChartDataSet.getNumberOfDataSets()]; //---get the original transform so can reset it. originalTransform = g2d.getTransform(); Rectangle2D rectangle; //LOOP //---pre-compute the dimensions of each Shape so do not do it in loop. for( int i = 0; i < iAxisChartDataSet.getNumberOfDataSets(); i++ ) { if( lineChartProperties.getShapes()[i] != null ) { rectangle = lineChartProperties.getShapes()[i].getBounds2D(); cornerXOffset[i] = rectangle.getWidth() / 2; cornerYOffset[i] = rectangle.getHeight() / 2; Vector v = regress(); // y = yoffset + slope(x) double yoffset, slope; // round to 5 places yoffset = (Math.round( 1.0E5 * a )) * 1.0E-5; slope = (Math.round( 1.0E5 * b )) * 1.0E-5; g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); //g2d.fill( lineChartProperties.getShapes()[ i ] ); g2d.setStroke( lineChartProperties.getLineStrokes()[i] ); //Line2D.Double line = new Line2D.Double(start.x, start.y, end.x, end.y); Line2D.Double line = new Line2D.Double( axisChart.getXAxis().getTickStart(), figureY( axisChart.getYAxis(), (yoffset + slope * 0) ), axisChart.getXAxis().getTickStart() + axisChart.getXAxis().getScalePixelWidth() * (v.size()-1), figureY( axisChart.getYAxis(), (yoffset + slope * v.size()) ) ); //g2d.fill( line ); g2d.draw( line ); g2d.setTransform( originalTransform ); } } } //String form = "formula y = "+String.valueOf(yoffset)+" + // "+String.valueOf(slope)+"x"; //g2d.drawString(form , 151, 156); //---init for first segment /* * Line2D.Float line=new Line2D.Float( axisChart.getXAxis().getTickStart(), * yAxisCoordinates[ 0 ][ 0 ], axisChart.getXAxis().getTickStart(), yAxisCoordinates[ * 0 ][ 0 ] ); */ //---make sure not plotting a chart with only one data point. /* * if( yAxisCoordinates[ 0 ].length > 1 ) { line.y2= yAxisCoordinates[ 0 ][ 1 ]; } */ //LOOP //---draw each line to the image /* * for( int i=0; i < yAxisCoordinates.length; i++ ) { * line.x1=axisChart.getXAxis().getTickStart(); line.y1=yAxisCoordinates[ i ][ 0 ]; * line.x2=line.x1; * * //LOOP for( int j=1; j < yAxisCoordinates[ 0 ].length; j++ ) { //---if current * point on line should be drawn if( !Float.isNaN( yAxisCoordinates[ i ][ j ] ) ) { * //---if the previous point was not drawn, no line if( Float.isNaN( * yAxisCoordinates[ i ][ j - 1 ] ) ) { * line.x2+=axisChart.getXAxis().getScalePixelWidth(); line.x1=line.x2; * line.y1=yAxisCoordinates[ i ][ j ]; line.y2=yAxisCoordinates[ i ][ j ]; * * continue; } * * * line.x2+=axisChart.getXAxis().getScalePixelWidth(); line.y2=yAxisCoordinates[ i ][ * j ]; * * g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); g2d.setStroke( * lineChartProperties.getLineStrokes()[ i ] ); g2d.draw( line ); * * //---plot the Point if( lineChartProperties.getShapes()[ i ] != null ) { * //---translate the Shape into position. g2d.translate( line.x1 - cornerXOffset[ i ], * line.y1 - cornerYOffset[ i ] ); * * g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); g2d.fill( * lineChartProperties.getShapes()[ i ] ); * * //---translate back to the original position g2d.setTransform( originalTransform ); } * * line.x1=line.x2; line.y1=line.y2; } else { if( ( !Float.isNaN( yAxisCoordinates[ i ][ * j - 1 ] ) ) && ( lineChartProperties.getShapes()[ i ] != null ) ) { //---translate * the Shape into position. g2d.translate( line.x1 - cornerXOffset[ i ], line.y1 - * cornerYOffset[ i ] ); * * g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); g2d.fill( * lineChartProperties.getShapes()[ i ] ); * * //---translate back to the original position g2d.setTransform( originalTransform ); } * * line.x2+=axisChart.getXAxis().getScalePixelWidth(); line.x1=line.x2; } } * * * //---put the last shape on the line if( ( !Float.isNaN( yAxisCoordinates[ i ][ * yAxisCoordinates[ i ].length - 1 ] ) ) && ( lineChartProperties.getShapes()[ i ] != * null ) ) { //---translate the Shape into position. g2d.translate( line.x2 - * cornerXOffset[ i ], line.y2 - cornerYOffset[ i ] ); * * g2d.setPaint( iAxisChartDataSet.getPaint( i ) ); g2d.fill( * lineChartProperties.getShapes()[ i ] ); * * //---translate back to the original position g2d.setTransform( originalTransform ); } } */ } private Vector regress() { Vector resid = new Vector(); Loc p, q; double currentResidual; double n = (double) numberLocs; Sxx = sumxx - sumx * sumx / n; Syy = sumyy - sumy * sumy / n; Sxy = sumxy - sumx * sumy / n; b = Sxy / Sxx; a = (sumy - b * sumx) / n; for( Enumeration e = v.elements(); e.hasMoreElements(); ) { p = (Loc) e.nextElement(); currentResidual = p.y - (a + b * p.x); q = new Loc( p.x, (int) currentResidual ); resid.addElement( q ); } return resid; } private void calculate( int numLocs ) { if( numberLocs > 1 ) { residuals = regress(); } } private void addLoc( Loc p ) { v.addElement( p ); numberLocs++; sumx += p.x; sumy += p.y; sumxx += p.x * p.x; sumyy += p.y * p.y; sumxy += p.x * p.y; } private static class Loc { public double x; public double y; public Loc( double x, double y ) { this.x = x; this.y = y; } public String toString() { return "[" + this.x + ", " + this.y + "]"; } } } |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:47:10
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20391/src/java/org/krysalis/jcharts/axisChart Modified Files: AxisChart.java Log Message: line regression chart Index: AxisChart.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/AxisChart.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** AxisChart.java 22 Jul 2004 01:45:28 -0000 1.10 --- AxisChart.java 13 Aug 2004 01:47:01 -0000 1.11 *************** *** 582,585 **** --- 582,592 ---- PointChart.render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); } + + iAxisPlotDataSet = this.iAxisDataSeries.getIAxisPlotDataSet( ChartType.LINE_REGRESSION ); + if( iAxisPlotDataSet != null ) + { + // must make new one each time + new RegressionChart().render( this, ( IAxisChartDataSet ) iAxisPlotDataSet ); + } } |
From: Nathaniel G. A. <nat...@us...> - 2004-08-13 01:46:33
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/axis In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20306/src/java/org/krysalis/jcharts/axisChart/axis Modified Files: XAxis.java Log Message: line regression chart Index: XAxis.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/axisChart/axis/XAxis.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XAxis.java 18 Jun 2004 22:35:07 -0000 1.5 --- XAxis.java 13 Aug 2004 01:46:23 -0000 1.6 *************** *** 225,228 **** --- 225,229 ---- || iAxisPlotDataSet.getChartType().equals( ChartType.BAR_STACKED_3D ) || iAxisPlotDataSet.getChartType().equals( ChartType.LINE ) + || iAxisPlotDataSet.getChartType().equals( ChartType.LINE_REGRESSION ) || iAxisPlotDataSet.getChartType().equals( ChartType.POINT ) || iAxisPlotDataSet.getChartType().equals( ChartType.STOCK ) ) |
From: Nathaniel G. A. <nat...@us...> - 2004-07-27 00:54:31
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19751/src/java/org/krysalis/jcharts/test Modified Files: PieTestDriver.java LineTestDriver.java ChartTestDriver.java Log Message: Index: PieTestDriver.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test/PieTestDriver.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PieTestDriver.java 10 Jun 2004 12:03:51 -0000 1.5 --- PieTestDriver.java 27 Jul 2004 00:54:06 -0000 1.6 *************** *** 91,95 **** TestDataGenerator.randomizeLegend( legendProperties ); //legendProperties.setBorderStroke( new BasicStroke( 2.0f ) ); ! legendProperties.setPlacement( LegendProperties.LEFT ); chartProperties = new ChartProperties(); --- 91,96 ---- TestDataGenerator.randomizeLegend( legendProperties ); //legendProperties.setBorderStroke( new BasicStroke( 2.0f ) ); ! legendProperties.setPlacement( LegendProperties.BOTTOM ); ! legendProperties.setNumColumns( 2 ); chartProperties = new ChartProperties(); Index: LineTestDriver.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test/LineTestDriver.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** LineTestDriver.java 17 May 2003 17:01:11 -0000 1.1 --- LineTestDriver.java 27 Jul 2004 00:54:06 -0000 1.2 *************** *** 166,170 **** AxisChartDataSet axisChartDataSet = new AxisChartDataSet( data, legendLabels, paints, ChartType.LINE, lineChartProperties ); ! String[] axisLabels= null; //{ "1900", "1950", "2000", "2050" }; DataSeries dataSeries = new DataSeries( axisLabels, "X-Axis Title", "Y-Axis Title", "Chart Title" ); dataSeries.addIAxisPlotDataSet( axisChartDataSet ); --- 166,170 ---- AxisChartDataSet axisChartDataSet = new AxisChartDataSet( data, legendLabels, paints, ChartType.LINE, lineChartProperties ); ! String[] axisLabels= { "1900", "1950", "2000", "2050" }; DataSeries dataSeries = new DataSeries( axisLabels, "X-Axis Title", "Y-Axis Title", "Chart Title" ); dataSeries.addIAxisPlotDataSet( axisChartDataSet ); *************** *** 174,178 **** AxisProperties axisProperties= new AxisProperties( false ); axisProperties.getYAxisProperties().setShowAxisLabels( false ); ! axisProperties.getXAxisProperties().setShowAxisLabels( false ); DataAxisProperties yAxis= (DataAxisProperties) axisProperties.getYAxisProperties(); --- 174,185 ---- AxisProperties axisProperties= new AxisProperties( false ); axisProperties.getYAxisProperties().setShowAxisLabels( false ); ! ! /* axisProperties.getYAxisProperties().setShowRightAxis( true ); ! axisProperties.getYAxisProperties().setMinRightAxis( 0 ); ! axisProperties.getYAxisProperties().setMaxRightAxis( 1000 ); ! */ ! ! ! axisProperties.getXAxisProperties().setShowAxisLabels( true ); DataAxisProperties yAxis= (DataAxisProperties) axisProperties.getYAxisProperties(); Index: ChartTestDriver.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/test/ChartTestDriver.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChartTestDriver.java 16 Jun 2004 02:27:23 -0000 1.4 --- ChartTestDriver.java 27 Jul 2004 00:54:06 -0000 1.5 *************** *** 85,89 **** AxisChartTestBase.axisChartTest( "stackedBarChart", new StackedBarTestDriver() ); */ ! AxisChartTestBase.axisChartTest( "clusteredBarChart", new ClusteredBarTestDriver() ); --- 85,89 ---- AxisChartTestBase.axisChartTest( "stackedBarChart", new StackedBarTestDriver() ); */ ! //AxisChartTestBase.axisChartTest( "clusteredBarChart", new ClusteredBarTestDriver() ); *************** *** 105,112 **** //ChartTestDriver.testAxisScale(); ! stopWatch.stop(); System.out.println( stopWatch ); ! } --- 105,114 ---- //ChartTestDriver.testAxisScale(); + System.out.println( "" + Integer.parseInt( null ) ); + ! /* stopWatch.stop(); System.out.println( stopWatch ); ! */ } |
From: Nathaniel G. A. <nat...@us...> - 2004-07-27 00:53:41
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/demo/userGuide In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19673/src/java/org/krysalis/jcharts/demo/userGuide Modified Files: BarChartsGuide.java Log Message: Index: BarChartsGuide.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/demo/userGuide/BarChartsGuide.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BarChartsGuide.java 22 Jul 2004 01:28:20 -0000 1.4 --- BarChartsGuide.java 27 Jul 2004 00:53:26 -0000 1.5 *************** *** 39,42 **** --- 39,43 ---- import org.krysalis.jcharts.chartData.DataSeries; import org.krysalis.jcharts.chartData.AxisChartDataSet; + import org.krysalis.jcharts.chartData.interfaces.IAxisDataSeries; import org.krysalis.jcharts.axisChart.AxisChart; import org.krysalis.jcharts.axisChart.customRenderers.axisValue.renderers.ValueLabelPosition; *************** *** 48,54 **** --- 49,58 ---- import org.krysalis.jcharts.properties.ChartProperties; import org.krysalis.jcharts.properties.ClusteredBarChartProperties; + import org.krysalis.jcharts.properties.StackedBarChart3DProperties; import org.krysalis.jcharts.properties.StackedBarChartProperties; + import org.krysalis.jcharts.properties.util.ChartFont; import org.krysalis.jcharts.properties.util.ChartStroke; import org.krysalis.jcharts.types.ChartType; + import org.krysalis.jcharts.test.ChartTestDriver; import org.krysalis.jcharts.test.TestDataGenerator; *************** *** 79,82 **** --- 83,88 ---- this.stackedBars(); this.clusteredBars(); + this.stacked3d(); + this.stacked3dDepth(); this.horizontalPlots(); *************** *** 338,341 **** --- 344,398 ---- } + + /***************************************************************/ + private void stacked3d() throws ChartDataException + { + String[] xAxisLabels= { "1998", "1999", "2000", "2001", "2002", "2003", "2004" }; + String xAxisTitle= "Years"; + String yAxisTitle= "Problems"; + String title= "Micro$oft at Work"; + DataSeries dataSeries = new DataSeries( xAxisLabels, xAxisTitle, yAxisTitle, title ); + + double[][] data= new double[][]{ { 250, 45, 36, 66, 145, 80, 55 }, { 150, 15, 6, 62, 54, 10, 84 }, { 250, 45, 36, 66, 145, 80, 55 } }; + String[] legendLabels= { "Bugs", "Security Holes", "Backdoors" }; + Paint[] paints= new Paint[]{ Color.red, Color.blue, Color.green }; + StackedBarChart3DProperties stackedBarChart3DProperties= new StackedBarChart3DProperties(); + AxisChartDataSet axisChartDataSet= new AxisChartDataSet( data, legendLabels, paints, ChartType.BAR_STACKED_3D, stackedBarChart3DProperties ); + dataSeries.addIAxisPlotDataSet( axisChartDataSet ); + + ChartProperties chartProperties= new ChartProperties(); + AxisProperties axisProperties= new AxisProperties(); + LegendProperties legendProperties= new LegendProperties(); + AxisChart axisChart= new AxisChart( dataSeries, chartProperties, axisProperties, legendProperties, AxisChartsGuide.width, AxisChartsGuide.height ); + + super.exportImage( axisChart, "stackedBarChart3d" ); + } + + + /***************************************************************/ + private void stacked3dDepth() throws ChartDataException + { + String[] xAxisLabels= { "1998", "1999", "2000", "2001", "2002", "2003", "2004" }; + String xAxisTitle= "Years"; + String yAxisTitle= "Problems"; + String title= "Micro$oft at Work"; + DataSeries dataSeries = new DataSeries( xAxisLabels, xAxisTitle, yAxisTitle, title ); + + double[][] data= new double[][]{ { 250, 45, 36, 66, 145, 80, 55 }, { 150, 15, 6, 62, 54, 10, 84 }, { 250, 45, 36, 66, 145, 80, 55 } }; + String[] legendLabels= { "Bugs", "Security Holes", "Backdoors" }; + Paint[] paints= new Paint[]{ Color.red, Color.blue, Color.green }; + StackedBarChart3DProperties stackedBarChart3DProperties= new StackedBarChart3DProperties(); + stackedBarChart3DProperties.setDepth( 20 ); + AxisChartDataSet axisChartDataSet= new AxisChartDataSet( data, legendLabels, paints, ChartType.BAR_STACKED_3D, stackedBarChart3DProperties ); + dataSeries.addIAxisPlotDataSet( axisChartDataSet ); + + ChartProperties chartProperties= new ChartProperties(); + AxisProperties axisProperties= new AxisProperties(); + LegendProperties legendProperties= new LegendProperties(); + AxisChart axisChart= new AxisChart( dataSeries, chartProperties, axisProperties, legendProperties, AxisChartsGuide.width, AxisChartsGuide.height ); + + super.exportImage( axisChart, "stackedBarChart3dDepth" ); + } + } |
From: Nathaniel G. A. <nat...@us...> - 2004-07-27 00:52:37
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19320/src/documentation/resources/images/userGuide/axisCharts Modified Files: tickColors.png axisTitleFont.png axisBackground.png zeroLinePaintStroke.png dollarSigns.png axisTitles.png horizontalPlots.png axisRounding.png gridLines.png tickStroke.png numberOfItemsOnYAxis.png noTicks.png scaleFont.png noZeroLine.png commas.png userDefinedScale.png verticalXAxisLabels.png ticksWithLabels.png Log Message: Index: verticalXAxisLabels.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/verticalXAxisLabels.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsGS65Md and /tmp/cvs3Sm9Ei differ Index: noTicks.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/noTicks.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsl7Drzg and /tmp/cvsWklRul differ Index: dollarSigns.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/dollarSigns.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvskhkqgj and /tmp/cvszaPAdo differ Index: tickStroke.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/tickStroke.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsSUHk4l and /tmp/cvsrR2i3q differ Index: axisTitles.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/axisTitles.png,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsC6kNBh and /tmp/cvseoMdEm differ Index: userDefinedScale.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/userDefinedScale.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvs4LHMzo and /tmp/cvs5HmxFt differ Index: tickColors.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/tickColors.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsUmAGLs and /tmp/cvsG78PTx differ Index: ticksWithLabels.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/ticksWithLabels.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsgqsyXx and /tmp/cvsfB208C differ Index: commas.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/commas.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvskF62cC and /tmp/cvsI99hrH differ Index: zeroLinePaintStroke.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/zeroLinePaintStroke.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsiKl3wD and /tmp/cvsb8EGNI differ Index: gridLines.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/gridLines.png,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsDkoWHJ and /tmp/cvsl76j1O differ Index: axisRounding.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/axisRounding.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsmV9SkQ and /tmp/cvsBgslIV differ Index: axisBackground.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/axisBackground.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvswcVj0R and /tmp/cvsQgsPqX differ Index: horizontalPlots.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/horizontalPlots.png,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsP2jHhZ and /tmp/cvssmIvM4 differ Index: scaleFont.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/scaleFont.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsSFDGk4 and /tmp/cvsg77kR9 differ Index: numberOfItemsOnYAxis.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/numberOfItemsOnYAxis.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsHsLvyb and /tmp/cvsUgF29g differ Index: noZeroLine.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/noZeroLine.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvs0PMZVe and /tmp/cvsO0f2Ak differ Index: axisTitleFont.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/axisCharts/axisTitleFont.png,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsCIbAPh and /tmp/cvsR3odBn differ |
From: Nathaniel G. A. <nat...@us...> - 2004-07-27 00:52:37
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19320/src/documentation/resources/images/userGuide/legends Modified Files: chartPadding.png legendOnRight.png oneColumn.png legendBackgroundPaint.png iconBorderPaint.png legendBasic.png borderColor.png legendFonts.png noLegend.png Log Message: Index: noLegend.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/noLegend.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvs9qOkvB and /tmp/cvsStuHKG differ Index: legendBasic.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/legendBasic.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvslzYLvJ and /tmp/cvswuNTOO differ Index: legendOnRight.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/legendOnRight.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsnKuuxO and /tmp/cvsu7CSTT differ Index: legendFonts.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/legendFonts.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsUbiSqP and /tmp/cvsNAokPU differ Index: oneColumn.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/oneColumn.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsNoCqtT and /tmp/cvsDjqzUY differ Index: chartPadding.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/chartPadding.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvs8qhp0Y and /tmp/cvsM2jpv4 differ Index: legendBackgroundPaint.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/legendBackgroundPaint.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvs2gL7o3 and /tmp/cvsLOq0W8 differ Index: borderColor.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/borderColor.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsxDii0d and /tmp/cvszN4SDj differ Index: iconBorderPaint.png =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/documentation/resources/images/userGuide/legends/iconBorderPaint.png,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvshPzoDh and /tmp/cvs4G5kkn differ |