Class EscherDggRecord

java.lang.Object
org.apache.poi.ddf.EscherRecord
org.apache.poi.ddf.EscherDggRecord
All Implemented Interfaces:
Cloneable

public final class EscherDggRecord extends EscherRecord
This record defines the drawing groups used for a particular sheet.
  • Field Details

  • Constructor Details

    • EscherDggRecord

      public EscherDggRecord()
  • Method Details

    • fillFields

      public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
      Description copied from class: EscherRecord
      The contract of this method is to deserialize an escher record including it's children.
      Specified by:
      fillFields in class EscherRecord
      Parameters:
      data - The byte array containing the serialized escher records.
      offset - The offset into the byte array.
      recordFactory - A factory for creating new escher records.
      Returns:
      The number of bytes written.
    • serialize

      public int serialize(int offset, byte[] data, EscherSerializationListener listener)
      Description copied from class: EscherRecord
      Serializes the record to an existing byte array.
      Specified by:
      serialize in class EscherRecord
      Parameters:
      offset - the offset within the byte array
      data - the data array to serialize to
      listener - a listener for begin and end serialization events. This is useful because the serialization is hierarchical/recursive and sometimes you need to be able break into that.
      Returns:
      the number of bytes written.
    • getRecordSize

      public int getRecordSize()
      Description copied from class: EscherRecord
      Subclasses should effeciently return the number of bytes required to serialize the record.
      Specified by:
      getRecordSize in class EscherRecord
      Returns:
      number of bytes
    • getRecordId

      public short getRecordId()
      Description copied from class: EscherRecord
      Return the current record id.
      Overrides:
      getRecordId in class EscherRecord
      Returns:
      The 16 bit record id.
    • getRecordName

      public String getRecordName()
      Description copied from class: EscherRecord
      Subclasses should return the short name for this escher record.
      Specified by:
      getRecordName in class EscherRecord
      Returns:
      the short name for this escher record
    • getShapeIdMax

      public int getShapeIdMax()
      Gets the next available shape id
      Returns:
      the next available shape id
    • setShapeIdMax

      public void setShapeIdMax(int shapeIdMax)
      The maximum is actually the next available shape id.
      Parameters:
      shapeIdMax - the next available shape id
    • getNumIdClusters

      public int getNumIdClusters()
      Number of id clusters + 1
      Returns:
      the number of id clusters + 1
    • getNumShapesSaved

      public int getNumShapesSaved()
      Gets the number of shapes saved
      Returns:
      the number of shapes saved
    • setNumShapesSaved

      public void setNumShapesSaved(int numShapesSaved)
      Sets the number of shapes saved
      Parameters:
      numShapesSaved - the number of shapes saved
    • getDrawingsSaved

      public int getDrawingsSaved()
      Gets the number of drawings saved
      Returns:
      the number of drawings saved
    • setDrawingsSaved

      public void setDrawingsSaved(int drawingsSaved)
      Sets the number of drawings saved
      Parameters:
      drawingsSaved - the number of drawings saved
    • getMaxDrawingGroupId

      public int getMaxDrawingGroupId()
      Gets the maximum drawing group ID
      Returns:
      The maximum drawing group ID
    • getFileIdClusters

      public EscherDggRecord.FileIdCluster[] getFileIdClusters()
      Returns:
      the file id clusters
    • setFileIdClusters

      public void setFileIdClusters(EscherDggRecord.FileIdCluster[] fileIdClusters)
      Sets the file id clusters
      Parameters:
      fileIdClusters - the file id clusters
    • addCluster

      public EscherDggRecord.FileIdCluster addCluster(int dgId, int numShapedUsed)
      Add a new cluster
      Parameters:
      dgId - id of the drawing group (stored in the record options)
      numShapedUsed - initial value of the numShapedUsed field
      Returns:
      the new EscherDggRecord.FileIdCluster
    • addCluster

      public EscherDggRecord.FileIdCluster addCluster(int dgId, int numShapedUsed, boolean sort)
      Add a new cluster
      Parameters:
      dgId - id of the drawing group (stored in the record options)
      numShapedUsed - initial value of the numShapedUsed field
      sort - if true then sort clusters by drawing group id.( In Excel the clusters are sorted but in PPT they are not)
      Returns:
      the new EscherDggRecord.FileIdCluster
    • findNewDrawingGroupId

      public short findNewDrawingGroupId()
      Finds the next available (1 based) drawing group id
      Returns:
      the next available drawing group id
    • allocateShapeId

      public int allocateShapeId(EscherDgRecord dg, boolean sort)
      Allocates new shape id for the drawing group
      Parameters:
      dg - the EscherDgRecord which receives the new shape
      sort - if true then sort clusters by drawing group id.( In Excel the clusters are sorted but in PPT they are not)
      Returns:
      a new shape id.
    • getAttributeMap

      protected Object[][] getAttributeMap()
      Description copied from class: EscherRecord
      For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form { { "Attribute Name (Header)", value, "optional attribute", value }, ... } .

      Null values won't be printed.

      The attributes record, version, instance, options must not be returned.

      Specified by:
      getAttributeMap in class EscherRecord
      Returns:
      the attribute map