From: Nathaniel G. A. <nat...@us...> - 2004-10-22 00:31:43
|
Update of /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19052/src/java/org/krysalis/jcharts Modified Files: Legend.java Log Message: fixing the icon problems. Still needs more work Index: Legend.java =================================================================== RCS file: /cvsroot/jcharts/krysalis-jcharts/src/java/org/krysalis/jcharts/Legend.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Legend.java 20 Oct 2004 13:34:50 -0000 1.13 --- Legend.java 22 Oct 2004 00:31:26 -0000 1.14 *************** *** 229,234 **** /*************************************************************************************** ! * Method for processing data for AxisPlot datasets; try to minimize looping. 1) ! * calculate the maximum height of labels 2) find the maximum label width * * @param iAxisPlotDataSet --- 229,236 ---- /*************************************************************************************** ! * Method for processing data for AxisPlot datasets; try to minimize looping. ! * 1) calculate the maximum height of labels ! * 2) find the maximum label width ! * 3 * * @param iAxisPlotDataSet *************** *** 241,247 **** if( iAxisPlotDataSet.getLegendLabel( i ) != null ) { ! this.textProcessor.addLabel( iAxisPlotDataSet.getLegendLabel( i ), ! this.legendProperties.getChartFont().getFont(), ! this.chart.getGraphics2D().getFontRenderContext() ); //---pair labels with paints to get around ugly piechart vs axischart data structure mess --- 243,249 ---- if( iAxisPlotDataSet.getLegendLabel( i ) != null ) { ! this.textProcessor.addLabel( iAxisPlotDataSet.getLegendLabel( i ), ! this.legendProperties.getChartFont().getFont(), ! this.chart.getGraphics2D().getFontRenderContext() ); //---pair labels with paints to get around ugly piechart vs axischart data structure mess *************** *** 293,302 **** if( iPieChartDataSet.getLegendLabel( i ) != null ) { ! this.textProcessor.addLabel( iPieChartDataSet.getLegendLabel( i ), ! this.legendProperties.getChartFont().getFont(), ! this.chart.getGraphics2D().getFontRenderContext() ); ! //---pair labels with paints to get around ugly piechart vs axischart data ! // structure mess this.labels.add( iPieChartDataSet.getLegendLabel( i ) ); this.paints.add( iPieChartDataSet.getPaint( i ) ); --- 295,303 ---- if( iPieChartDataSet.getLegendLabel( i ) != null ) { ! this.textProcessor.addLabel( iPieChartDataSet.getLegendLabel( i ), ! this.legendProperties.getChartFont().getFont(), ! this.chart.getGraphics2D().getFontRenderContext() ); ! //---pair labels with paints to get around ugly piechart vs axischart data structure mess this.labels.add( iPieChartDataSet.getLegendLabel( i ) ); this.paints.add( iPieChartDataSet.getPaint( i ) ); *************** *** 452,458 **** //---account for lineStrokes for LINE charts if( chartType == ChartType.LINE ) { ! width += this.legendProperties.getIconLineStrokeLength() * 2 * this.numColumns; } --- 453,461 ---- //---account for lineStrokes for LINE charts + //TODO this is NOT correct. if( chartType == ChartType.LINE ) { ! //width += this.legendProperties.getIconLineStrokeLength() * 2 * this.numColumns; ! width += this.legendProperties.getIconLineStrokeLength() * this.numColumns; } *************** *** 490,495 **** //---dont think we want this so text will be clean but leave commented out. ! //g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING, ! // RenderingHints.VALUE_ANTIALIAS_OFF ); //---set the font and text color. --- 493,497 ---- //---dont think we want this so text will be clean but leave commented out. ! //g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF ); //---set the font and text color. *************** *** 512,515 **** --- 514,521 ---- Shape shape = (Shape) this.shapes.get( labelIndex ); + //---get the original transform so can reset it + AffineTransform affineTransform = g2d.getTransform(); + + //LOOP for( int j = 0; j < this.numRows; j++ ) *************** *** 530,539 **** if( this.shapes.size() > 0 && this.shapes.size() > labelIndex && !shape.equals( barShape ) ) { - //---get the original transform so can reset it - AffineTransform affineTransform = g2d.getTransform(); - //---translate the Shape into position g2d.translate( rectangle.x, rectangle.y ); ! if( this.fillPointsFlags.size() > 0 ) { --- 536,542 ---- if( this.shapes.size() > 0 && this.shapes.size() > labelIndex && !shape.equals( barShape ) ) { //---translate the Shape into position g2d.translate( rectangle.x, rectangle.y ); ! if( this.fillPointsFlags.size() > 0 ) { *************** *** 553,600 **** else { ! // for Point Charts, only draw shape ! if( chartType == ChartType.POINT ) ! { ! g2d.draw( shape ); ! } ! else ! // chartType == ChartType.LINE ! // for Line Charts, fill the shape ! { ! //---get the bounds of the shape ! Rectangle2D shapeBounds = shape.getBounds2D(); ! double xOffset = shapeBounds.getWidth() / 2; ! double yOffset = shapeBounds.getHeight() / 2; ! g2d.setStroke( (Stroke) this.strokes.get( labelIndex ) ); ! Line2D.Double line = new Line2D.Double( 0, ! yOffset, ! this.legendProperties.getIconLineStrokeLength(), ! yOffset ); ! g2d.draw( line ); ! // move posX to account for the lineStroke before the shape. for example: ---o ! posX += this.legendProperties.getIconLineStrokeLength(); ! //---translate the Shape to adjust for the IconLineStrokeLength ! g2d.translate( this.legendProperties.getIconLineStrokeLength() - xOffset, 0 ); ! ! line.x1 = xOffset; ! g2d.draw( line ); ! g2d.fill( (Shape) this.shapes.get( labelIndex ) ); ! //---border around icon ! if( this.legendProperties.getIconBorderStroke() != null && this.pointOutlinePaints.size() != 0 ) { ! if( this.pointOutlinePaints != null ) ! { ! g2d.setStroke( this.legendProperties.getIconBorderStroke() ); ! g2d.setPaint( (Paint) this.pointOutlinePaints.get( labelIndex ) ); ! g2d.draw( shape ); ! } } - - //---move posX to account for the lineStroke after the shape. for example: o--- - posX += this.legendProperties.getIconLineStrokeLength(); } } //---reset original transform g2d.setTransform( affineTransform ); --- 556,599 ---- else { ! //---get the bounds of the shape ! Rectangle2D shapeBounds = shape.getBounds2D(); ! double xOffset = shapeBounds.getWidth() / 2; ! double yOffset = shapeBounds.getHeight() / 2; ! g2d.setStroke( (Stroke) this.strokes.get( labelIndex ) ); ! ! Line2D.Double line = new Line2D.Double( 0, ! yOffset, ! this.legendProperties.getIconLineStrokeLength(), ! yOffset ); ! g2d.draw( line ); ! ! // move posX to account for the lineStroke before the shape. for example: ---o ! //posX += this.legendProperties.getIconLineStrokeLength(); ! ! //---translate the Shape to adjust for the IconLineStrokeLength ! //g2d.translate( this.legendProperties.getIconLineStrokeLength() - xOffset, 0 ); ! g2d.translate( xOffset, 0 ); ! ! //line.x1 = xOffset; ! //g2d.draw( line ); ! //---Line Charts fill with the same Paint as the lines are drawn with ! g2d.fill( (Shape) this.shapes.get( labelIndex ) ); ! //---border around icon ! if( this.legendProperties.getIconBorderStroke() != null && this.pointOutlinePaints.size() != 0 ) ! { ! if( this.pointOutlinePaints != null ) { ! g2d.setStroke( this.legendProperties.getIconBorderStroke() ); ! g2d.setPaint( (Paint) this.pointOutlinePaints.get( labelIndex ) ); ! g2d.draw( shape ); } } + + //---move posX to account for the lineStroke after the shape. for example: o--- + posX += this.legendProperties.getIconLineStrokeLength(); } + //---reset original transform g2d.setTransform( affineTransform ); *************** *** 655,658 **** --- 654,661 ---- htmlGenerator.legendTableStart(); + htmlGenerator.addTableRow( "X", Float.toString( this.x ) ); + htmlGenerator.addTableRow( "Y", Float.toString( this.y ) ); + htmlGenerator.addTableRow( "numColumns", Integer.toString( this.numColumns ) ); + htmlGenerator.addTableRow( "numRows", Integer.toString( this.numRows ) ); htmlGenerator.addTableRow( "Width", Float.toString( this.width ) ); htmlGenerator.addTableRow( "Height", Float.toString( this.height ) ); |