public void testHSSFShapeCompatibility() { HSSFSimpleShape shape = new HSSFSimpleShape(null, new HSSFClientAnchor()); shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE); assertEquals(0x08000040, shape.getLineStyleColor()); assertEquals(0x08000009, shape.getFillColor()); assertEquals(HSSFShape.LINEWIDTH_DEFAULT, shape.getLineWidth()); assertEquals(HSSFShape.LINESTYLE_SOLID, shape.getLineStyle()); assertFalse(shape.isNoFill()); AbstractShape sp = AbstractShape.createShape(shape, 1); EscherContainerRecord spContainer = sp.getSpContainer(); EscherOptRecord opt = spContainer.getChildById(EscherOptRecord.RECORD_ID); assertEquals(7, opt.getEscherProperties().size()); assertEquals( true, ((EscherBoolProperty) opt.lookup(EscherProperties.TEXT__SIZE_TEXT_TO_FIT_SHAPE)).isTrue()); assertEquals( 0x00000004, ((EscherSimpleProperty) opt.lookup(EscherProperties.GEOMETRY__SHAPEPATH)) .getPropertyValue()); assertEquals( 0x08000009, ((EscherSimpleProperty) opt.lookup(EscherProperties.FILL__FILLCOLOR)).getPropertyValue()); assertEquals( true, ((EscherBoolProperty) opt.lookup(EscherProperties.FILL__NOFILLHITTEST)).isTrue()); assertEquals( 0x08000040, ((EscherSimpleProperty) opt.lookup(EscherProperties.LINESTYLE__COLOR)).getPropertyValue()); assertEquals( true, ((EscherBoolProperty) opt.lookup(EscherProperties.LINESTYLE__NOLINEDRAWDASH)).isTrue()); assertEquals( true, ((EscherBoolProperty) opt.lookup(EscherProperties.GROUPSHAPE__PRINT)).isTrue()); }
/* 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); }