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);
}
}
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);
}
}