Class EscherDggRecord

  • All Implemented Interfaces:
    java.lang.Cloneable

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

      • EscherDggRecord

        public EscherDggRecord()
    • Method Detail

      • 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 java.lang.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
      • 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.