/** * Allocates new shape id for the new drawing group id. * * @return a new shape id. */ public int AllocateShapeId(short drawingGroupId, EscherDgRecord dg) { dgg.NumShapesSaved=(dgg.NumShapesSaved + 1); // Add to existing cluster if space available for (int i = 0; i < dgg.FileIdClusters.Length; i++) { EscherDggRecord.FileIdCluster c = dgg.FileIdClusters[i]; if (c.DrawingGroupId == drawingGroupId && c.NumShapeIdsUsed != 1024) { int result = c.NumShapeIdsUsed + (1024 * (i + 1)); c.IncrementShapeId(); dg.NumShapes=(dg.NumShapes + 1); dg.LastMSOSPID=(result); if (result >= dgg.ShapeIdMax) dgg.ShapeIdMax=(result + 1); return result; } } // Create new cluster dgg.AddCluster(drawingGroupId, 0); dgg.FileIdClusters[dgg.FileIdClusters.Length - 1].IncrementShapeId(); dg.NumShapes=(dg.NumShapes + 1); int result2 = (1024 * dgg.FileIdClusters.Length); dg.LastMSOSPID = (result2); if (result2 >= dgg.ShapeIdMax) dgg.ShapeIdMax = (result2 + 1); return result2; }
public override EscherDgRecord CreateDgRecord() { EscherDgRecord dg = new EscherDgRecord(); dg.RecordId = (EscherDgRecord.RECORD_ID); dg.Options = ((short)(16)); dg.NumShapes = (1); dg.LastMSOSPID = (1024); return dg; }
private EscherDgRecord CreateRecord() { EscherDgRecord r = new EscherDgRecord(); r.Options=(short)0x0010; r.RecordId=EscherDgRecord.RECORD_ID; r.NumShapes=2; r.LastMSOSPID=1025; return r; }
public EscherDgRecord CreateDgRecord() { EscherDgRecord dg = new EscherDgRecord(); dg.RecordId=(EscherDgRecord.RECORD_ID); short dgId = FindNewDrawingGroupId(); dg.Options=((short)(dgId << 4)); dg.NumShapes=(0); dg.LastMSOSPID=(-1); dgg.AddCluster(dgId, 0); dgg.DrawingsSaved=(dgg.DrawingsSaved + 1); dgMap[dgId]= dg; return dg; }
public EscherDgRecord CreateDgRecord() { EscherDgRecord dg = new EscherDgRecord(); dg.RecordId = EscherDgRecord.RECORD_ID; short dgId = FindNewDrawingGroupId(); dg.Options=(short)(dgId << 4); dg.NumShapes=0; dg.LastMSOSPID=(-1); drawingGroups.Add(dg); dgg.AddCluster(dgId, 0); dgg.DrawingsSaved=dgg.DrawingsSaved + 1; return dg; }
public void TestFillFields() { String hexData = "10 00 " + "08 F0 " + "08 00 00 00 " + "02 00 00 00 " + "01 04 00 00 "; byte[] data = HexRead.ReadFromString(hexData); EscherDgRecord r = new EscherDgRecord(); int bytesWritten = r.FillFields(data, new DefaultEscherRecordFactory()); Assert.AreEqual(16, bytesWritten); Assert.AreEqual(2, r.NumShapes); Assert.AreEqual(1025, r.LastMSOSPID); }
public override int AllocateShapeId(short drawingGroupId, EscherDgRecord dg) { return 1025; }
/** * create base tree with such structure: * EscherDgContainer * -EscherSpgrContainer * --EscherSpContainer * ---EscherSpRecord * ---EscherSpgrRecord * ---EscherSpRecord * -EscherDgRecord * * id of DgRecord and SpRecord are empty and must be set later by HSSFPatriarch */ private void BuildBaseTree() { EscherContainerRecord dgContainer = new EscherContainerRecord(); EscherContainerRecord spgrContainer = new EscherContainerRecord(); EscherContainerRecord spContainer1 = new EscherContainerRecord(); EscherSpgrRecord spgr = new EscherSpgrRecord(); EscherSpRecord sp1 = new EscherSpRecord(); dgContainer.RecordId = (EscherContainerRecord.DG_CONTAINER); dgContainer.Options = ((short)0x000F); EscherDgRecord dg = new EscherDgRecord(); dg.RecordId = EscherDgRecord.RECORD_ID; short dgId = 1; dg.Options = ((short)(dgId << 4)); dg.NumShapes = (0); dg.LastMSOSPID=(1024); spgrContainer.RecordId=(EscherContainerRecord.SPGR_CONTAINER); spgrContainer.Options=((short)0x000F); spContainer1.RecordId=(EscherContainerRecord.SP_CONTAINER); spContainer1.Options=((short)0x000F); spgr.RecordId=(EscherSpgrRecord.RECORD_ID); spgr.Options=((short)0x0001); // version spgr.RectX1=(0); spgr.RectY1=(0); spgr.RectX2=(1023); spgr.RectY2=(255); sp1.RecordId=(EscherSpRecord.RECORD_ID); sp1.Options=((short)0x0002); sp1.Version=((short)0x2); sp1.ShapeId=(-1); sp1.Flags=(EscherSpRecord.FLAG_GROUP | EscherSpRecord.FLAG_PATRIARCH); dgContainer.AddChildRecord(dg); dgContainer.AddChildRecord(spgrContainer); spgrContainer.AddChildRecord(spContainer1); spContainer1.AddChildRecord(spgr); spContainer1.AddChildRecord(sp1); AddEscherRecord(dgContainer); }
public virtual int AllocateShapeId(short drawingGroupId, EscherDgRecord dg) { return 1025; }