mirror of https://github.com/apache/poi.git
implemented removing of all shape types
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/gsoc2012@1363524 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4e646a7182
commit
63ff9839ae
|
@ -210,8 +210,7 @@ public class HSSFComment extends HSSFTextbox implements Comment {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void afterRemove(HSSFPatriarch patriarch){
|
public void afterRemove(HSSFPatriarch patriarch){
|
||||||
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
|
super.afterRemove(patriarch);
|
||||||
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
|
|
||||||
patriarch._getBoundAggregate().removeTailRecord(getNoteRecord());
|
patriarch._getBoundAggregate().removeTailRecord(getNoteRecord());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,11 +88,14 @@ public final class HSSFPatriarch implements HSSFShapeContainer, Drawing {
|
||||||
*
|
*
|
||||||
* @param shape to be removed
|
* @param shape to be removed
|
||||||
*/
|
*/
|
||||||
public void removeShape(HSSFShape shape) {
|
public boolean removeShape(HSSFShape shape) {
|
||||||
_mainSpgrContainer.removeChildRecord(shape.getEscherContainer());
|
boolean isRemoved = _mainSpgrContainer.removeChildRecord(shape.getEscherContainer());
|
||||||
|
if (isRemoved){
|
||||||
shape.afterRemove(this);
|
shape.afterRemove(this);
|
||||||
_shapes.remove(shape);
|
_shapes.remove(shape);
|
||||||
}
|
}
|
||||||
|
return isRemoved;
|
||||||
|
}
|
||||||
|
|
||||||
void afterCreate() {
|
void afterCreate() {
|
||||||
DrawingManager2 drawingManager = _sheet.getWorkbook().getWorkbook().getDrawingManager();
|
DrawingManager2 drawingManager = _sheet.getWorkbook().getWorkbook().getDrawingManager();
|
||||||
|
|
|
@ -114,6 +114,7 @@ public class HSSFPolygon extends HSSFSimpleShape {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterRemove(HSSFPatriarch patriarch) {
|
protected void afterRemove(HSSFPatriarch patriarch) {
|
||||||
|
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getXPoints() {
|
public int[] getXPoints() {
|
||||||
|
|
|
@ -124,6 +124,14 @@ public class HSSFShapeGroup extends HSSFShape implements HSSFShapeContainer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterRemove(HSSFPatriarch patriarch) {
|
protected void afterRemove(HSSFPatriarch patriarch) {
|
||||||
|
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildContainers().get(0)
|
||||||
|
.getChildById(EscherClientDataRecord.RECORD_ID));
|
||||||
|
for ( int i=0; i<shapes.size(); i++ ) {
|
||||||
|
HSSFShape shape = shapes.get(i);
|
||||||
|
removeShape(shape);
|
||||||
|
shape.afterRemove(_patriarch);
|
||||||
|
}
|
||||||
|
shapes.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onCreate(HSSFShape shape){
|
private void onCreate(HSSFShape shape){
|
||||||
|
@ -360,4 +368,13 @@ public class HSSFShapeGroup extends HSSFShape implements HSSFShapeContainer {
|
||||||
}
|
}
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean removeShape(HSSFShape shape) {
|
||||||
|
boolean isRemoved = getEscherContainer().removeChildRecord(shape.getEscherContainer());
|
||||||
|
if (isRemoved){
|
||||||
|
shape.afterRemove(this._patriarch);
|
||||||
|
shapes.remove(shape);
|
||||||
|
}
|
||||||
|
return isRemoved;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,6 +152,10 @@ public class HSSFSimpleShape extends HSSFShape
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterRemove(HSSFPatriarch patriarch) {
|
protected void afterRemove(HSSFPatriarch patriarch) {
|
||||||
|
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
|
||||||
|
if (null != getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID)){
|
||||||
|
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -71,14 +71,15 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
ObjRecord obj = new ObjRecord();
|
ObjRecord obj = new ObjRecord();
|
||||||
CommonObjectDataSubRecord c = new CommonObjectDataSubRecord();
|
CommonObjectDataSubRecord c = new CommonObjectDataSubRecord();
|
||||||
c.setObjectType(HSSFTextbox.OBJECT_TYPE_TEXT);
|
c.setObjectType(HSSFTextbox.OBJECT_TYPE_TEXT);
|
||||||
c.setLocked( true );
|
c.setLocked(true);
|
||||||
c.setPrintable( true );
|
c.setPrintable(true);
|
||||||
c.setAutofill( true );
|
c.setAutofill(true);
|
||||||
c.setAutoline( true );
|
c.setAutoline(true);
|
||||||
EndSubRecord e = new EndSubRecord();
|
EndSubRecord e = new EndSubRecord();
|
||||||
obj.addSubRecord( c );
|
obj.addSubRecord(c);
|
||||||
obj.addSubRecord( e );
|
obj.addSubRecord(e);
|
||||||
return obj; }
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected EscherContainerRecord createSpContainer() {
|
protected EscherContainerRecord createSpContainer() {
|
||||||
|
@ -106,12 +107,12 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTBOTTOM, 0));
|
opt.addEscherProperty(new EscherSimpleProperty(EscherProperties.TEXT__TEXTBOTTOM, 0));
|
||||||
|
|
||||||
opt.setEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEDASHING, LINESTYLE_SOLID));
|
opt.setEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEDASHING, LINESTYLE_SOLID));
|
||||||
opt.setEscherProperty( new EscherBoolProperty( EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x00080008));
|
opt.setEscherProperty(new EscherBoolProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x00080008));
|
||||||
opt.setEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEWIDTH, LINEWIDTH_DEFAULT));
|
opt.setEscherProperty(new EscherSimpleProperty(EscherProperties.LINESTYLE__LINEWIDTH, LINEWIDTH_DEFAULT));
|
||||||
opt.setEscherProperty(new EscherRGBProperty(EscherProperties.FILL__FILLCOLOR, FILL__FILLCOLOR_DEFAULT));
|
opt.setEscherProperty(new EscherRGBProperty(EscherProperties.FILL__FILLCOLOR, FILL__FILLCOLOR_DEFAULT));
|
||||||
opt.setEscherProperty(new EscherRGBProperty(EscherProperties.LINESTYLE__COLOR, LINESTYLE__COLOR_DEFAULT));
|
opt.setEscherProperty(new EscherRGBProperty(EscherProperties.LINESTYLE__COLOR, LINESTYLE__COLOR_DEFAULT));
|
||||||
opt.setEscherProperty(new EscherBoolProperty(EscherProperties.FILL__NOFILLHITTEST, NO_FILLHITTEST_FALSE));
|
opt.setEscherProperty(new EscherBoolProperty(EscherProperties.FILL__NOFILLHITTEST, NO_FILLHITTEST_FALSE));
|
||||||
opt.setEscherProperty(new EscherBoolProperty( EscherProperties.GROUPSHAPE__PRINT, 0x080000));
|
opt.setEscherProperty(new EscherBoolProperty(EscherProperties.GROUPSHAPE__PRINT, 0x080000));
|
||||||
|
|
||||||
EscherRecord anchor = getAnchor().getEscherAnchor();
|
EscherRecord anchor = getAnchor().getEscherAnchor();
|
||||||
clientData.setRecordId(EscherClientDataRecord.RECORD_ID);
|
clientData.setRecordId(EscherClientDataRecord.RECORD_ID);
|
||||||
|
@ -137,7 +138,7 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void afterInsert(HSSFPatriarch patriarch){
|
void afterInsert(HSSFPatriarch patriarch) {
|
||||||
EscherAggregate agg = patriarch._getBoundAggregate();
|
EscherAggregate agg = patriarch._getBoundAggregate();
|
||||||
agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord());
|
agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord());
|
||||||
agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID), getTextObjectRecord());
|
agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID), getTextObjectRecord());
|
||||||
|
@ -148,7 +149,7 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
*/
|
*/
|
||||||
public int getMarginLeft() {
|
public int getMarginLeft() {
|
||||||
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTLEFT);
|
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTLEFT);
|
||||||
return property == null ? 0: property.getPropertyValue();
|
return property == null ? 0 : property.getPropertyValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -163,7 +164,7 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
*/
|
*/
|
||||||
public int getMarginRight() {
|
public int getMarginRight() {
|
||||||
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTRIGHT);
|
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTRIGHT);
|
||||||
return property == null ? 0: property.getPropertyValue();
|
return property == null ? 0 : property.getPropertyValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -178,7 +179,7 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
*/
|
*/
|
||||||
public int getMarginTop() {
|
public int getMarginTop() {
|
||||||
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTTOP);
|
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTTOP);
|
||||||
return property == null ? 0: property.getPropertyValue();
|
return property == null ? 0 : property.getPropertyValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -193,7 +194,7 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
*/
|
*/
|
||||||
public int getMarginBottom() {
|
public int getMarginBottom() {
|
||||||
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTBOTTOM);
|
EscherSimpleProperty property = getOptRecord().lookup(EscherProperties.TEXT__TEXTBOTTOM);
|
||||||
return property == null ? 0: property.getPropertyValue();
|
return property == null ? 0 : property.getPropertyValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -233,16 +234,22 @@ public class HSSFTextbox extends HSSFSimpleShape {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setShapeType(int shapeType) {
|
public void setShapeType(int shapeType) {
|
||||||
throw new IllegalStateException("Shape type can not be changed in "+this.getClass().getSimpleName());
|
throw new IllegalStateException("Shape type can not be changed in " + this.getClass().getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HSSFShape cloneShape() {
|
public HSSFShape cloneShape() {
|
||||||
TextObjectRecord txo = (TextObjectRecord) getTextObjectRecord().cloneViaReserialise();
|
TextObjectRecord txo = (TextObjectRecord) getTextObjectRecord().cloneViaReserialise();
|
||||||
EscherContainerRecord spContainer = new EscherContainerRecord();
|
EscherContainerRecord spContainer = new EscherContainerRecord();
|
||||||
byte [] inSp = getEscherContainer().serialize();
|
byte[] inSp = getEscherContainer().serialize();
|
||||||
spContainer.fillFields(inSp, 0, new DefaultEscherRecordFactory());
|
spContainer.fillFields(inSp, 0, new DefaultEscherRecordFactory());
|
||||||
ObjRecord obj = (ObjRecord) getObjRecord().cloneViaReserialise();
|
ObjRecord obj = (ObjRecord) getObjRecord().cloneViaReserialise();
|
||||||
return new HSSFTextbox(spContainer, obj, txo);
|
return new HSSFTextbox(spContainer, obj, txo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void afterRemove(HSSFPatriarch patriarch) {
|
||||||
|
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
|
||||||
|
patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import org.apache.poi.hssf.record.CommonObjectDataSubRecord;
|
||||||
import org.apache.poi.hssf.record.EscherAggregate;
|
import org.apache.poi.hssf.record.EscherAggregate;
|
||||||
import org.apache.poi.hssf.record.ObjRecord;
|
import org.apache.poi.hssf.record.ObjRecord;
|
||||||
import org.apache.poi.hssf.usermodel.*;
|
import org.apache.poi.hssf.usermodel.*;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.apache.poi.util.HexDump;
|
import org.apache.poi.util.HexDump;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -395,4 +396,144 @@ public class TestDrawingShapes extends TestCase {
|
||||||
assertTrue(Arrays.equals(comboboxShape.getSpContainer().serialize(), combobox.getEscherContainer().serialize()));
|
assertTrue(Arrays.equals(comboboxShape.getSpContainer().serialize(), combobox.getEscherContainer().serialize()));
|
||||||
assertTrue(Arrays.equals(comboboxShape.getObjRecord().serialize(), combobox.getObjRecord().serialize()));
|
assertTrue(Arrays.equals(comboboxShape.getObjRecord().serialize(), combobox.getObjRecord().serialize()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testRemoveShapes(){
|
||||||
|
HSSFWorkbook wb = new HSSFWorkbook();
|
||||||
|
HSSFSheet sheet = wb.createSheet();
|
||||||
|
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
|
||||||
|
|
||||||
|
HSSFSimpleShape rectangle = patriarch.createSimpleShape(new HSSFClientAnchor());
|
||||||
|
rectangle.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
|
||||||
|
|
||||||
|
int idx = wb.addPicture(new byte[]{1,2,3}, Workbook.PICTURE_TYPE_JPEG);
|
||||||
|
patriarch.createPicture(new HSSFClientAnchor(), idx);
|
||||||
|
|
||||||
|
patriarch.createCellComment(new HSSFClientAnchor());
|
||||||
|
|
||||||
|
HSSFPolygon polygon = patriarch.createPolygon(new HSSFClientAnchor());
|
||||||
|
polygon.setPoints(new int[]{1,2}, new int[]{2,3});
|
||||||
|
|
||||||
|
patriarch.createTextbox(new HSSFClientAnchor());
|
||||||
|
|
||||||
|
HSSFShapeGroup group = patriarch.createGroup(new HSSFClientAnchor());
|
||||||
|
group.createTextbox(new HSSFChildAnchor());
|
||||||
|
group.createPicture(new HSSFChildAnchor(), idx);
|
||||||
|
|
||||||
|
assertEquals(patriarch.getChildren().size(), 6);
|
||||||
|
assertEquals(group.getChildren().size(), 2);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 12);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 12);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
|
||||||
|
assertEquals(patriarch.getChildren().size(), 6);
|
||||||
|
|
||||||
|
group = (HSSFShapeGroup) patriarch.getChildren().get(5);
|
||||||
|
group.removeShape(group.getChildren().get(0));
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 10);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 10);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
|
||||||
|
group = (HSSFShapeGroup) patriarch.getChildren().get(5);
|
||||||
|
patriarch.removeShape(group);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 8);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 8);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 5);
|
||||||
|
|
||||||
|
HSSFShape shape = patriarch.getChildren().get(0);
|
||||||
|
patriarch.removeShape(shape);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 6);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 4);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 6);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 4);
|
||||||
|
|
||||||
|
HSSFPicture picture = (HSSFPicture) patriarch.getChildren().get(0);
|
||||||
|
patriarch.removeShape(picture);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 5);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 3);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 5);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 1);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 3);
|
||||||
|
|
||||||
|
HSSFComment comment = (HSSFComment) patriarch.getChildren().get(0);
|
||||||
|
patriarch.removeShape(comment);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 3);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 0);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 2);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 3);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 0);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 2);
|
||||||
|
|
||||||
|
polygon = (HSSFPolygon) patriarch.getChildren().get(0);
|
||||||
|
patriarch.removeShape(polygon);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 2);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 0);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 1);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 2);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 0);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 1);
|
||||||
|
|
||||||
|
HSSFTextbox textbox = (HSSFTextbox) patriarch.getChildren().get(0);
|
||||||
|
patriarch.removeShape(textbox);
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 0);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 0);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 0);
|
||||||
|
|
||||||
|
wb = HSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||||
|
sheet = wb.getSheetAt(0);
|
||||||
|
patriarch = sheet.getDrawingPatriarch();
|
||||||
|
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getShapeToObjMapping().size(), 0);
|
||||||
|
assertEquals(HSSFTestHelper.getEscherAggregate(patriarch).getTailRecords().size(), 0);
|
||||||
|
assertEquals(patriarch.getChildren().size(), 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue