From 65b72fe04399a2415e98e7d4f8ec6514c2646a9a Mon Sep 17 00:00:00 2001 From: sguan Date: Wed, 2 Jul 2014 17:10:05 -0700 Subject: [PATCH] Updated x and y coordinate on table for overflow items --- .../engine/emitter/pptx/TableWriter.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/engine/org.eclipse.birt.report.engine.emitter.pptx/src/org/eclipse/birt/report/engine/emitter/pptx/TableWriter.java b/engine/org.eclipse.birt.report.engine.emitter.pptx/src/org/eclipse/birt/report/engine/emitter/pptx/TableWriter.java index 2ba069e4654..30a9a202132 100644 --- a/engine/org.eclipse.birt.report.engine.emitter.pptx/src/org/eclipse/birt/report/engine/emitter/pptx/TableWriter.java +++ b/engine/org.eclipse.birt.report.engine.emitter.pptx/src/org/eclipse/birt/report/engine/emitter/pptx/TableWriter.java @@ -72,6 +72,7 @@ protected void drawTable( TableArea table ) currentX += getX( table ); currentY += getY( table ); + updateRenderXY( ); parseTableExtraSpanRows( table ); startTable( table ); @@ -82,13 +83,14 @@ protected void drawTable( TableArea table ) { // end clip... } - updateRenderXY( ); + if ( table.needClip( ) ) { graphics.endClip( ); } currentX -= getX( table ); currentY -= getY( table ); + updateRenderXY( ); endTable( ); } @@ -107,7 +109,13 @@ private void iterateOnRows( IContainerArea table ) } else {// TableGroupArea: + currentX += getX( table ); + currentY += getY( table ); + updateRenderXY( ); iterateOnRows( (TableGroupArea) child ); + currentX -= getX( table ); + currentY -= getY( table ); + updateRenderXY( ); currentRow = internalRowCount + 1; } } @@ -275,22 +283,24 @@ protected void drawCell( CellArea cell ) currentX += getX( cell ); currentY += getY( cell ); + updateRenderXY( ); startCell( cell ); - if( cell.getChildrenCount( ) == 0 ) - {//draw emtpy textbox for size of cell to remain, use font size 8 - if( emptytextboxwriter == null ) + if ( cell.getChildrenCount( ) == 0 ) + {// draw emtpy textbox for size of cell to remain, use font size 8 + if ( emptytextboxwriter == null ) { - emptytextboxwriter = new TextWriter(render); + emptytextboxwriter = new TextWriter( render ); } emptytextboxwriter.writeBlankTextBlock( 800 ); } else { - visitChildren( cell ); + visitChildren( cell ); } endCell( cell ); currentX -= getX( cell ); currentY -= getY( cell ); + updateRenderXY( ); } /** @@ -411,7 +421,6 @@ else if ( rectMerge ) protected void visitChildren( IContainerArea container ) { - updateRenderXY( ); Iterator iter = container.getChildren( ); boolean notFirstTextBox = false; while ( iter.hasNext( ) ) @@ -435,7 +444,6 @@ protected void visitChildren( IContainerArea container ) } } - updateRenderXY( ); } /**