]> source.dussan.org Git - poi.git/commitdiff
don't increment the number of shapes when cloning a sheet with drawings
authorYegor Kozlov <yegor@apache.org>
Tue, 9 Sep 2008 06:58:35 +0000 (06:58 +0000)
committerYegor Kozlov <yegor@apache.org>
Tue, 9 Sep 2008 06:58:35 +0000 (06:58 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@693383 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/ddf/EscherContainerRecord.java
src/java/org/apache/poi/hssf/model/Workbook.java

index bb188d5387be8dc16b32b2e6c3a5f052b1f0315f..9c204226e440b6dc8d506eac92947ef0316e8e9e 100644 (file)
@@ -243,10 +243,11 @@ public class EscherContainerRecord extends EscherRecord
     public void getRecordsById(short recordId, List out){
         for(Iterator it = childRecords.iterator(); it.hasNext();) {
             Object er = it.next();
-            if(er instanceof EscherContainerRecord) {
-                EscherContainerRecord c = (EscherContainerRecord)er;
+            EscherRecord r = (EscherRecord)er;
+            if(r instanceof EscherContainerRecord) {
+                EscherContainerRecord c = (EscherContainerRecord)r;
                 c.getRecordsById(recordId, out );
-            } else if (er instanceof EscherSpRecord){
+            } else if (r.getRecordId() == recordId){
                 out.add(er);
             }
         }
index fad9e4d0ba4186f2566314488cf679f89d360788..7976588d3495081d28076b214a4a5e2b1fa6b757 100644 (file)
@@ -2493,6 +2493,8 @@ public final class Workbook implements Model {
                     for(Iterator spIt = spRecords.iterator(); spIt.hasNext();) {
                         EscherSpRecord sp = (EscherSpRecord)spIt.next();
                         int shapeId = drawingManager.allocateShapeId((short)dgId, dg);
+                        //allocateShapeId increments the number of shapes. roll back to the previous value
+                        dg.setNumShapes(dg.getNumShapes()-1);
                         sp.setShapeId(shapeId);
                     }
                 }