public void testTextForSimpleShape() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); HSSFSimpleShape shape = patriarch.createSimpleShape(new HSSFClientAnchor()); shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); EscherAggregate agg = HSSFTestHelper.getEscherAggregate(patriarch); assertEquals(agg.getShapeToObjMapping().size(), 2); wb = HSSFTestDataSamples.writeOutAndReadBack(wb); sheet = wb.getSheetAt(0); patriarch = sheet.getDrawingPatriarch(); shape = (HSSFSimpleShape) patriarch.getChildren().get(0); agg = HSSFTestHelper.getEscherAggregate(patriarch); assertEquals(agg.getShapeToObjMapping().size(), 2); shape.setString(new HSSFRichTextString("string1")); assertEquals(shape.getString().getString(), "string1"); assertNotNull( HSSFTestHelper.getEscherContainer(shape).getChildById(EscherTextboxRecord.RECORD_ID)); assertEquals(agg.getShapeToObjMapping().size(), 2); wb = HSSFTestDataSamples.writeOutAndReadBack(wb); wb = HSSFTestDataSamples.writeOutAndReadBack(wb); sheet = wb.getSheetAt(0); patriarch = sheet.getDrawingPatriarch(); shape = (HSSFSimpleShape) patriarch.getChildren().get(0); assertNotNull(HSSFTestHelper.getTextObjRecord(shape)); assertEquals(shape.getString().getString(), "string1"); assertNotNull( HSSFTestHelper.getEscherContainer(shape).getChildById(EscherTextboxRecord.RECORD_ID)); assertEquals(agg.getShapeToObjMapping().size(), 2); }
/* assert shape properties when reading shapes from a existing workbook */ public void testReadExistingRectangle() { HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("drawings.xls"); HSSFSheet sheet = wb.getSheet("rectangles"); HSSFPatriarch drawing = sheet.getDrawingPatriarch(); assertEquals(1, drawing.getChildren().size()); HSSFSimpleShape shape = (HSSFSimpleShape) drawing.getChildren().get(0); assertEquals(shape.isNoFill(), false); assertEquals(shape.getLineStyle(), HSSFShape.LINESTYLE_DASHDOTGEL); assertEquals(shape.getLineStyleColor(), 0x616161); assertEquals(HexDump.toHex(shape.getFillColor()), shape.getFillColor(), 0x2CE03D); assertEquals(shape.getLineWidth(), HSSFShape.LINEWIDTH_ONE_PT * 2); assertEquals(shape.getString().getString(), "POItest"); assertEquals(shape.getRotationDegree(), 27); }
/** * create a rectangle, save the workbook, read back and verify that all shape properties are there */ public void testReadWriteRectangle() throws IOException { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFPatriarch drawing = sheet.createDrawingPatriarch(); HSSFClientAnchor anchor = new HSSFClientAnchor(10, 10, 50, 50, (short) 2, 2, (short) 4, 4); anchor.setAnchorType(2); assertEquals(anchor.getAnchorType(), 2); HSSFSimpleShape rectangle = drawing.createSimpleShape(anchor); rectangle.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); rectangle.setLineWidth(10000); rectangle.setFillColor(777); assertEquals(rectangle.getFillColor(), 777); assertEquals(10000, rectangle.getLineWidth()); rectangle.setLineStyle(10); assertEquals(10, rectangle.getLineStyle()); assertEquals(rectangle.getWrapText(), HSSFSimpleShape.WRAP_SQUARE); rectangle.setLineStyleColor(1111); rectangle.setNoFill(true); rectangle.setWrapText(HSSFSimpleShape.WRAP_NONE); rectangle.setString(new HSSFRichTextString("teeeest")); assertEquals(rectangle.getLineStyleColor(), 1111); assertEquals( ((EscherSimpleProperty) ((EscherOptRecord) HSSFTestHelper.getEscherContainer(rectangle) .getChildById(EscherOptRecord.RECORD_ID)) .lookup(EscherProperties.TEXT__TEXTID)) .getPropertyValue(), "teeeest".hashCode()); assertEquals(rectangle.isNoFill(), true); assertEquals(rectangle.getWrapText(), HSSFSimpleShape.WRAP_NONE); assertEquals(rectangle.getString().getString(), "teeeest"); wb = HSSFTestDataSamples.writeOutAndReadBack(wb); sheet = wb.getSheetAt(0); drawing = sheet.getDrawingPatriarch(); assertEquals(1, drawing.getChildren().size()); HSSFSimpleShape rectangle2 = (HSSFSimpleShape) drawing.getChildren().get(0); assertEquals(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, rectangle2.getShapeType()); assertEquals(10000, rectangle2.getLineWidth()); assertEquals(10, rectangle2.getLineStyle()); assertEquals(anchor, rectangle2.getAnchor()); assertEquals(rectangle2.getLineStyleColor(), 1111); assertEquals(rectangle2.getFillColor(), 777); assertEquals(rectangle2.isNoFill(), true); assertEquals(rectangle2.getString().getString(), "teeeest"); assertEquals(rectangle.getWrapText(), HSSFSimpleShape.WRAP_NONE); rectangle2.setFillColor(3333); rectangle2.setLineStyle(9); rectangle2.setLineStyleColor(4444); rectangle2.setNoFill(false); rectangle2.setLineWidth(77); rectangle2.getAnchor().setDx1(2); rectangle2.getAnchor().setDx2(3); rectangle2.getAnchor().setDy1(4); rectangle2.getAnchor().setDy2(5); rectangle.setWrapText(HSSFSimpleShape.WRAP_BY_POINTS); rectangle2.setString(new HSSFRichTextString("test22")); wb = HSSFTestDataSamples.writeOutAndReadBack(wb); sheet = wb.getSheetAt(0); drawing = sheet.getDrawingPatriarch(); assertEquals(1, drawing.getChildren().size()); rectangle2 = (HSSFSimpleShape) drawing.getChildren().get(0); assertEquals(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, rectangle2.getShapeType()); assertEquals(rectangle.getWrapText(), HSSFSimpleShape.WRAP_BY_POINTS); assertEquals(77, rectangle2.getLineWidth()); assertEquals(9, rectangle2.getLineStyle()); assertEquals(rectangle2.getLineStyleColor(), 4444); assertEquals(rectangle2.getFillColor(), 3333); assertEquals(rectangle2.getAnchor().getDx1(), 2); assertEquals(rectangle2.getAnchor().getDx2(), 3); assertEquals(rectangle2.getAnchor().getDy1(), 4); assertEquals(rectangle2.getAnchor().getDy2(), 5); assertEquals(rectangle2.isNoFill(), false); assertEquals(rectangle2.getString().getString(), "test22"); HSSFSimpleShape rect3 = drawing.createSimpleShape(new HSSFClientAnchor()); rect3.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE); wb = HSSFTestDataSamples.writeOutAndReadBack(wb); drawing = wb.getSheetAt(0).getDrawingPatriarch(); assertEquals(drawing.getChildren().size(), 2); }