private static void DrawSheet4(ISheet sheet4, HSSFWorkbook wb) { // Create the Drawing patriarch. This is the top level container for // all shapes. This will clear out any existing shapes for that sheet. HSSFPatriarch patriarch = (HSSFPatriarch)sheet4.CreateDrawingPatriarch(); // Create a couple of textboxes HSSFTextbox textbox1 = (HSSFTextbox)patriarch.CreateTextbox( new HSSFClientAnchor(0, 0, 0, 0, (short)1, 1, (short)2, 2)); textbox1.String = new HSSFRichTextString("This is a test"); HSSFTextbox textbox2 = (HSSFTextbox)patriarch.CreateTextbox( new HSSFClientAnchor(0, 0, 900, 100, (short)3, 3, (short)3, 4)); textbox2.String = new HSSFRichTextString("Woo"); textbox2.SetFillColor(200, 0, 0); textbox2.LineStyle = LineStyle.DotGel; // Create third one with some fancy font styling. HSSFTextbox textbox3 = (HSSFTextbox)patriarch.CreateTextbox( new HSSFClientAnchor(0, 0, 900, 100, (short)4, 4, (short)5, 4 + 1)); IFont font = wb.CreateFont(); font.IsItalic = true; font.Underline = (byte)FontUnderlineType.DOUBLE; HSSFRichTextString str = new HSSFRichTextString("Woo!!!"); str.ApplyFont(2, 5, font); textbox3.String = str; textbox3.FillColor = 0x08000030; textbox3.LineStyle = LineStyle.None; // no line around the textbox. textbox3.IsNoFill = true; // make it transparent }
public void TestAddTextToExistingFile() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; textbox.String = (new HSSFRichTextString("just for Test")); HSSFTextbox textbox2 = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; textbox2.String = (new HSSFRichTextString("just for Test2")); Assert.AreEqual(patriarch.Children.Count, 2); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(patriarch.Children.Count, 2); HSSFTextbox text3 = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; text3.String = (new HSSFRichTextString("text3")); Assert.AreEqual(patriarch.Children.Count, 3); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(patriarch.Children.Count, 3); Assert.AreEqual(((HSSFTextbox)patriarch.Children[0]).String.String, "just for Test"); Assert.AreEqual(((HSSFTextbox)patriarch.Children[1]).String.String, "just for Test2"); Assert.AreEqual(((HSSFTextbox)patriarch.Children[2]).String.String, "text3"); }
public void TestCorrectOrderInOptRecord() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; EscherOptRecord opt = HSSFTestHelper.GetOptRecord(textbox); String opt1Str = opt.ToXml(); textbox.FillColor = textbox.FillColor; EscherContainerRecord Container = HSSFTestHelper.GetEscherContainer(textbox); EscherOptRecord optRecord = Container.GetChildById(EscherOptRecord.RECORD_ID) as EscherOptRecord; Assert.AreEqual(opt1Str, optRecord.ToXml()); textbox.LineStyle = textbox.LineStyle; Assert.AreEqual(opt1Str, optRecord.ToXml()); textbox.LineWidth = textbox.LineWidth; Assert.AreEqual(opt1Str, optRecord.ToXml()); textbox.LineStyleColor = textbox.LineStyleColor; Assert.AreEqual(opt1Str, optRecord.ToXml()); wb.Close(); }
public void TestResultEqualsToAbstractShape() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; TextboxShape textboxShape = HSSFTestModelHelper.CreateTextboxShape(1025, textbox); Assert.AreEqual(textbox.GetEscherContainer().ChildRecords.Count, 5); Assert.AreEqual(textboxShape.SpContainer.ChildRecords.Count, 5); //sp record byte[] expected = textboxShape.SpContainer.GetChild(0).Serialize(); byte[] actual = textbox.GetEscherContainer().GetChild(0).Serialize(); Assert.AreEqual(expected.Length, actual.Length); Assert.IsTrue(Arrays.Equals(expected, actual)); expected = textboxShape.SpContainer.GetChild(2).Serialize(); actual = textbox.GetEscherContainer().GetChild(2).Serialize(); Assert.AreEqual(expected.Length, actual.Length); Assert.IsTrue(Arrays.Equals(expected, actual)); expected = textboxShape.SpContainer.GetChild(3).Serialize(); actual = textbox.GetEscherContainer().GetChild(3).Serialize(); Assert.AreEqual(expected.Length, actual.Length); Assert.IsTrue(Arrays.Equals(expected, actual)); expected = textboxShape.SpContainer.GetChild(4).Serialize(); actual = textbox.GetEscherContainer().GetChild(4).Serialize(); Assert.AreEqual(expected.Length, actual.Length); Assert.IsTrue(Arrays.Equals(expected, actual)); ObjRecord obj = textbox.GetObjRecord(); ObjRecord objShape = textboxShape.ObjRecord; expected = obj.Serialize(); actual = objShape.Serialize(); TextObjectRecord tor = textbox.GetTextObjectRecord(); TextObjectRecord torShape = textboxShape.TextObjectRecord; expected = tor.Serialize(); actual = torShape.Serialize(); Assert.AreEqual(expected.Length, actual.Length); Assert.IsTrue(Arrays.Equals(expected, actual)); }
public void TestOpt() { HSSFWorkbook wb = new HSSFWorkbook(); // create a sheet with a text box HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; EscherOptRecord opt1 = HSSFTestHelper.GetOptRecord(textbox); EscherOptRecord opt2 = HSSFTestHelper.GetEscherContainer(textbox).GetChildById(EscherOptRecord.RECORD_ID) as EscherOptRecord; Assert.AreSame(opt1, opt2); }
public void TestAlignment() { HSSFWorkbook wb = new HSSFWorkbook(); NPOI.SS.UserModel.ISheet sh1 = wb.CreateSheet(); HSSFPatriarch patriarch = sh1.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor(0, 0, 0, 0, 1, 1, 6, 4)) as HSSFTextbox; HSSFRichTextString str = new HSSFRichTextString("Hello, World"); textbox.String = (str); textbox.HorizontalAlignment = HorizontalAlignment.Center; textbox.VerticalAlignment = VerticalAlignment.Center; Assert.AreEqual(HorizontalAlignment.Center, textbox.HorizontalAlignment); Assert.AreEqual(VerticalAlignment.Center, textbox.VerticalAlignment); }
public void TestAlignment() { HSSFWorkbook wb = new HSSFWorkbook(); NPOI.SS.UserModel.ISheet sh1 = wb.CreateSheet(); HSSFPatriarch patriarch = sh1.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor(0, 0, 0, 0, 1, 1, 6, 4)) as HSSFTextbox; HSSFRichTextString str = new HSSFRichTextString("Hello, World"); textbox.String = (str); textbox.HorizontalAlignment = (HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED); textbox.VerticalAlignment = (HSSFTextbox.VERTICAL_ALIGNMENT_CENTER); Assert.AreEqual(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED, textbox.HorizontalAlignment); Assert.AreEqual(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER, textbox.VerticalAlignment); }
public void TestSetDeafultTextFormat() { HSSFWorkbook wb = new HSSFWorkbook(); NPOI.SS.UserModel.ISheet sheet = wb.CreateSheet(); HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox1 = patriarch.CreateTextbox(new HSSFClientAnchor(0, 0, 0, 0, 1, 1, 3, 3)) as HSSFTextbox; HSSFRichTextString rt1 = new HSSFRichTextString("Hello, World!"); Assert.AreEqual(0, rt1.NumFormattingRuns); textbox1.String = (rt1); HSSFRichTextString rt2 = (HSSFRichTextString)textbox1.String; Assert.AreEqual(1, rt2.NumFormattingRuns); Assert.AreEqual(HSSFRichTextString.NO_FONT, rt2.GetFontOfFormattingRun(0)); }
public void TestResultEqualsToNonExistingAbstractShape() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; Assert.AreEqual(textbox.GetEscherContainer().ChildRecords.Count, 5); //sp record byte[] expected = TestDrawingAggregate.decompress("H4sIAAAAAAAAAFvEw/WBg4GBgZEFSHAxMAAA9gX7nhAAAAA="); byte[] actual = textbox.GetEscherContainer().GetChild(0).Serialize(); Assert.AreEqual(expected.Length, actual.Length); //assertArrayEquals(expected, actual) CollectionAssert.AreEqual(expected, actual); expected = TestDrawingAggregate.decompress("H4sIAAAAAAAAAGNgEPggxIANAABK4+laGgAAAA=="); actual = textbox.GetEscherContainer().GetChild(2).Serialize(); Assert.AreEqual(expected.Length, actual.Length); CollectionAssert.AreEqual(expected, actual); expected = TestDrawingAggregate.decompress("H4sIAAAAAAAAAGNgEPzAAAQACl6c5QgAAAA="); actual = textbox.GetEscherContainer().GetChild(3).Serialize(); Assert.AreEqual(expected.Length, actual.Length); CollectionAssert.AreEqual(expected, actual); expected = TestDrawingAggregate.decompress("H4sIAAAAAAAAAGNg4P3AAAQA6pyIkQgAAAA="); actual = textbox.GetEscherContainer().GetChild(4).Serialize(); Assert.AreEqual(expected.Length, actual.Length); CollectionAssert.AreEqual(expected, actual); ObjRecord obj = textbox.GetObjRecord(); expected = TestDrawingAggregate.decompress("H4sIAAAAAAAAAItlkGIQZRBiYGNgZBBMYEADAOdCLuweAAAA"); actual = obj.Serialize(); Assert.AreEqual(expected.Length, actual.Length); CollectionAssert.AreEqual(expected, actual); TextObjectRecord tor = textbox.GetTextObjectRecord(); expected = TestDrawingAggregate.decompress("H4sIAAAAAAAAANvGKMQgxMSABgBGi8T+FgAAAA=="); actual = tor.Serialize(); Assert.AreEqual(expected.Length, actual.Length); CollectionAssert.AreEqual(expected, actual); wb.Close(); }
public void TestSetGetProperties() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sh.CreateDrawingPatriarch() as HSSFPatriarch; HSSFTextbox textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox; textbox.String = (new HSSFRichTextString("test")); Assert.AreEqual(textbox.String.String, "test"); textbox.HorizontalAlignment = ((HorizontalTextAlignment)5); Assert.AreEqual((HorizontalTextAlignment)5, textbox.HorizontalAlignment); textbox.VerticalAlignment = ((VerticalTextAlignment)6); Assert.AreEqual((VerticalTextAlignment)6, textbox.VerticalAlignment); textbox.MarginBottom = (7); Assert.AreEqual(textbox.MarginBottom, 7); textbox.MarginLeft = (8); Assert.AreEqual(textbox.MarginLeft, 8); textbox.MarginRight = (9); Assert.AreEqual(textbox.MarginRight, 9); textbox.MarginTop = (10); Assert.AreEqual(textbox.MarginTop, 10); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; textbox = (HSSFTextbox)patriarch.Children[0]; Assert.AreEqual(textbox.String.String, "test"); Assert.AreEqual(textbox.HorizontalAlignment, (HorizontalTextAlignment)5); Assert.AreEqual(textbox.VerticalAlignment, (VerticalTextAlignment)6); Assert.AreEqual(textbox.MarginBottom, 7); Assert.AreEqual(textbox.MarginLeft, 8); Assert.AreEqual(textbox.MarginRight, 9); Assert.AreEqual(textbox.MarginTop, 10); textbox.String = (new HSSFRichTextString("test1")); textbox.HorizontalAlignment = HorizontalTextAlignment.Center; textbox.VerticalAlignment = VerticalTextAlignment.Top; textbox.MarginBottom = (71); textbox.MarginLeft = (81); textbox.MarginRight = (91); textbox.MarginTop = (101); Assert.AreEqual(textbox.String.String, "test1"); Assert.AreEqual(textbox.HorizontalAlignment, HorizontalTextAlignment.Center); Assert.AreEqual(textbox.VerticalAlignment, VerticalTextAlignment.Top); Assert.AreEqual(textbox.MarginBottom, 71); Assert.AreEqual(textbox.MarginLeft, 81); Assert.AreEqual(textbox.MarginRight, 91); Assert.AreEqual(textbox.MarginTop, 101); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sh = wb.GetSheetAt(0) as HSSFSheet; patriarch = sh.DrawingPatriarch as HSSFPatriarch; textbox = (HSSFTextbox)patriarch.Children[0]; Assert.AreEqual(textbox.String.String, "test1"); Assert.AreEqual(textbox.HorizontalAlignment, HorizontalTextAlignment.Center); Assert.AreEqual(textbox.VerticalAlignment, VerticalTextAlignment.Top); Assert.AreEqual(textbox.MarginBottom, 71); Assert.AreEqual(textbox.MarginLeft, 81); Assert.AreEqual(textbox.MarginRight, 91); Assert.AreEqual(textbox.MarginTop, 101); }
public void TestRemoveShapes() { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.CreateSheet() as HSSFSheet; HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFSimpleShape rectangle = patriarch.CreateSimpleShape(new HSSFClientAnchor()); rectangle.ShapeType = HSSFSimpleShape.OBJECT_TYPE_RECTANGLE; int idx = wb.AddPicture(new byte[] { 1, 2, 3 }, PictureType.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); Assert.AreEqual(patriarch.Children.Count, 6); Assert.AreEqual(group.Children.Count, 2); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 12); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 12); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 6); group = (HSSFShapeGroup)patriarch.Children[5]; group.RemoveShape(group.Children[0]); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 10); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 10); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); group = (HSSFShapeGroup)patriarch.Children[(5)]; patriarch.RemoveShape(group); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 8); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 8); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 5); HSSFShape shape = patriarch.Children[0]; patriarch.RemoveShape(shape); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 6); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 4); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 6); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 4); HSSFPicture picture = (HSSFPicture)patriarch.Children[0]; patriarch.RemoveShape(picture); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 5); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 3); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 5); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1); Assert.AreEqual(patriarch.Children.Count, 3); HSSFComment comment = (HSSFComment)patriarch.Children[0]; patriarch.RemoveShape(comment); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 3); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 2); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 3); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 2); polygon = (HSSFPolygon)patriarch.Children[0]; patriarch.RemoveShape(polygon); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 2); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 1); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 2); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 1); HSSFTextbox textbox = (HSSFTextbox)patriarch.Children[0]; patriarch.RemoveShape(textbox); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 0); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 0); wb = HSSFTestDataSamples.WriteOutAndReadBack(wb); sheet = wb.GetSheetAt(0) as HSSFSheet; patriarch = sheet.DrawingPatriarch as HSSFPatriarch; Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 0); Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0); Assert.AreEqual(patriarch.Children.Count, 0); }
public void TestGetDataBackAgain() { HSSFSheet s; HSSFShapeGroup s1; HSSFShapeGroup s2; patriarch.SetCoordinates(10, 20, 30, 40); MemoryStream baos = new MemoryStream(); workbook.Write(baos); workbook = new HSSFWorkbook(new MemoryStream(baos.ToArray())); s = (HSSFSheet)workbook.GetSheetAt(0); patriarch = (HSSFPatriarch)s.DrawingPatriarch; Assert.IsNotNull(patriarch); Assert.AreEqual(10, patriarch.X1); Assert.AreEqual(20, patriarch.Y1); Assert.AreEqual(30, patriarch.X2); Assert.AreEqual(40, patriarch.Y2); // Check the two groups too Assert.AreEqual(2, patriarch.CountOfAllChildren); Assert.IsTrue(patriarch.Children[0] is HSSFShapeGroup); Assert.IsTrue(patriarch.Children[1] is HSSFShapeGroup); s1 = (HSSFShapeGroup)patriarch.Children[0]; s2 = (HSSFShapeGroup)patriarch.Children[1]; Assert.AreEqual(0, s1.X1); Assert.AreEqual(0, s1.Y1); Assert.AreEqual(1023, s1.X2); Assert.AreEqual(255, s1.Y2); Assert.AreEqual(0, s2.X1); Assert.AreEqual(0, s2.Y1); Assert.AreEqual(1023, s2.X2); Assert.AreEqual(255, s2.Y2); Assert.AreEqual(0, s1.Anchor.Dx1); Assert.AreEqual(0, s1.Anchor.Dy1); Assert.AreEqual(1022, s1.Anchor.Dx2); Assert.AreEqual(255, s1.Anchor.Dy2); Assert.AreEqual(20, s2.Anchor.Dx1); Assert.AreEqual(30, s2.Anchor.Dy1); Assert.AreEqual(500, s2.Anchor.Dx2); Assert.AreEqual(200, s2.Anchor.Dy2); // Write and re-load once more, to Check that's ok baos = new MemoryStream(); workbook.Write(baos); workbook = new HSSFWorkbook(new MemoryStream(baos.ToArray())); s = (HSSFSheet)workbook.GetSheetAt(0); patriarch = (HSSFPatriarch)s.DrawingPatriarch; Assert.IsNotNull(patriarch); Assert.AreEqual(10, patriarch.X1); Assert.AreEqual(20, patriarch.Y1); Assert.AreEqual(30, patriarch.X2); Assert.AreEqual(40, patriarch.Y2); // Check the two groups too Assert.AreEqual(2, patriarch.CountOfAllChildren); Assert.IsTrue(patriarch.Children[0] is HSSFShapeGroup); Assert.IsTrue(patriarch.Children[1] is HSSFShapeGroup); s1 = (HSSFShapeGroup)patriarch.Children[0]; s2 = (HSSFShapeGroup)patriarch.Children[1]; Assert.AreEqual(0, s1.X1); Assert.AreEqual(0, s1.Y1); Assert.AreEqual(1023, s1.X2); Assert.AreEqual(255, s1.Y2); Assert.AreEqual(0, s2.X1); Assert.AreEqual(0, s2.Y1); Assert.AreEqual(1023, s2.X2); Assert.AreEqual(255, s2.Y2); Assert.AreEqual(0, s1.Anchor.Dx1); Assert.AreEqual(0, s1.Anchor.Dy1); Assert.AreEqual(1022, s1.Anchor.Dx2); Assert.AreEqual(255, s1.Anchor.Dy2); Assert.AreEqual(20, s2.Anchor.Dx1); Assert.AreEqual(30, s2.Anchor.Dy1); Assert.AreEqual(500, s2.Anchor.Dx2); Assert.AreEqual(200, s2.Anchor.Dy2); // Change the positions of the first groups, // but not of their anchors s1.SetCoordinates(2, 3, 1021, 242); baos = new MemoryStream(); workbook.Write(baos); workbook = new HSSFWorkbook(new MemoryStream(baos.ToArray())); s = (HSSFSheet)workbook.GetSheetAt(0); patriarch = (HSSFPatriarch)s.DrawingPatriarch; Assert.IsNotNull(patriarch); Assert.AreEqual(10, patriarch.X1); Assert.AreEqual(20, patriarch.Y1); Assert.AreEqual(30, patriarch.X2); Assert.AreEqual(40, patriarch.Y2); // Check the two groups too Assert.AreEqual(2, patriarch.CountOfAllChildren); Assert.AreEqual(2, patriarch.Children.Count); Assert.IsTrue(patriarch.Children[0] is HSSFShapeGroup); Assert.IsTrue(patriarch.Children[1] is HSSFShapeGroup); s1 = (HSSFShapeGroup)patriarch.Children[0]; s2 = (HSSFShapeGroup)patriarch.Children[1]; Assert.AreEqual(2, s1.X1); Assert.AreEqual(3, s1.Y1); Assert.AreEqual(1021, s1.X2); Assert.AreEqual(242, s1.Y2); Assert.AreEqual(0, s2.X1); Assert.AreEqual(0, s2.Y1); Assert.AreEqual(1023, s2.X2); Assert.AreEqual(255, s2.Y2); Assert.AreEqual(0, s1.Anchor.Dx1); Assert.AreEqual(0, s1.Anchor.Dy1); Assert.AreEqual(1022, s1.Anchor.Dx2); Assert.AreEqual(255, s1.Anchor.Dy2); Assert.AreEqual(20, s2.Anchor.Dx1); Assert.AreEqual(30, s2.Anchor.Dy1); Assert.AreEqual(500, s2.Anchor.Dx2); Assert.AreEqual(200, s2.Anchor.Dy2); // Now Add some text to one group, and some more // to the base, and Check we can get it back again HSSFTextbox tbox1 = patriarch.CreateTextbox(new HSSFClientAnchor(1, 2, 3, 4, (short)0, 0, (short)0, 0)) as HSSFTextbox; tbox1.String = (new HSSFRichTextString("I am text box 1")); HSSFTextbox tbox2 = s2.CreateTextbox(new HSSFChildAnchor(41, 42, 43, 44)) as HSSFTextbox; tbox2.String = (new HSSFRichTextString("This is text box 2")); Assert.AreEqual(3, patriarch.Children.Count); baos = new MemoryStream(); workbook.Write(baos); workbook = new HSSFWorkbook(new MemoryStream(baos.ToArray())); s = (HSSFSheet)workbook.GetSheetAt(0); patriarch = (HSSFPatriarch)s.DrawingPatriarch; Assert.IsNotNull(patriarch); Assert.AreEqual(10, patriarch.X1); Assert.AreEqual(20, patriarch.Y1); Assert.AreEqual(30, patriarch.X2); Assert.AreEqual(40, patriarch.Y2); // Check the two groups and the text // Result of patriarch.countOfAllChildren() makes no sense: // Returns 4 for 2 empty groups + 1 TextBox. //Assert.AreEqual(3, patriarch.CountOfAllChildren); Assert.AreEqual(3, patriarch.Children.Count); // Should be two groups and a text Assert.IsTrue(patriarch.Children[0] is HSSFShapeGroup); Assert.IsTrue(patriarch.Children[1] is HSSFShapeGroup); Assert.IsTrue(patriarch.Children[2] is HSSFTextbox); s1 = (HSSFShapeGroup)patriarch.Children[0]; tbox1 = (HSSFTextbox)patriarch.Children[2]; s2 = (HSSFShapeGroup)patriarch.Children[1]; Assert.AreEqual(2, s1.X1); Assert.AreEqual(3, s1.Y1); Assert.AreEqual(1021, s1.X2); Assert.AreEqual(242, s1.Y2); Assert.AreEqual(0, s2.X1); Assert.AreEqual(0, s2.Y1); Assert.AreEqual(1023, s2.X2); Assert.AreEqual(255, s2.Y2); Assert.AreEqual(0, s1.Anchor.Dx1); Assert.AreEqual(0, s1.Anchor.Dy1); Assert.AreEqual(1022, s1.Anchor.Dx2); Assert.AreEqual(255, s1.Anchor.Dy2); Assert.AreEqual(20, s2.Anchor.Dx1); Assert.AreEqual(30, s2.Anchor.Dy1); Assert.AreEqual(500, s2.Anchor.Dx2); Assert.AreEqual(200, s2.Anchor.Dy2); // Not working just yet //Assert.AreEqual("I am text box 1", tbox1.String.String); }