Browse Source

don't increment the number of shapes when cloning a sheet with drawings

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@693383 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_2_FINAL
Yegor Kozlov 15 years ago
parent
commit
cdba99c929

+ 4
- 3
src/java/org/apache/poi/ddf/EscherContainerRecord.java View 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);
}
}

+ 2
- 0
src/java/org/apache/poi/hssf/model/Workbook.java View 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);
}
}

Loading…
Cancel
Save