org.apache.poi.ddf
Class EscherDggRecord

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

public final class EscherDggRecord
extends EscherRecord

This record defines the drawing groups used for a particular sheet.


Nested Class Summary
static class EscherDggRecord.FileIdCluster
           
 
Field Summary
static java.lang.String RECORD_DESCRIPTION
           
static short RECORD_ID
           
 
Constructor Summary
EscherDggRecord()
           
 
Method Summary
 EscherDggRecord.FileIdCluster addCluster(int dgId, int numShapedUsed)
          Add a new cluster
 EscherDggRecord.FileIdCluster addCluster(int dgId, int numShapedUsed, boolean sort)
          Add a new cluster
 int allocateShapeId(EscherDgRecord dg, boolean sort)
          Allocates new shape id for the drawing group
 int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
          The contract of this method is to deserialize an escher record including it's children.
 short findNewDrawingGroupId()
          Finds the next available (1 based) drawing group id
protected  java.lang.Object[][] getAttributeMap()
          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 }, ...
 int getDrawingsSaved()
          Gets the number of drawings saved
 EscherDggRecord.FileIdCluster[] getFileIdClusters()
           
 int getMaxDrawingGroupId()
          Gets the maximum drawing group ID
 int getNumIdClusters()
          Number of id clusters + 1
 int getNumShapesSaved()
          Gets the number of shapes saved
 short getRecordId()
          Return the current record id.
 java.lang.String getRecordName()
          Subclasses should return the short name for this escher record.
 int getRecordSize()
          Subclasses should effeciently return the number of bytes required to serialize the record.
 int getShapeIdMax()
          Gets the next available shape id
 int serialize(int offset, byte[] data, EscherSerializationListener listener)
          Serializes the record to an existing byte array.
 void setDrawingsSaved(int drawingsSaved)
          Sets the number of drawings saved
 void setFileIdClusters(EscherDggRecord.FileIdCluster[] fileIdClusters)
          Sets the file id clusters
 void setNumShapesSaved(int numShapesSaved)
          Sets the number of shapes saved
 void setShapeIdMax(int shapeIdMax)
          The maximum is actually the next available shape id.
 
Methods inherited from class org.apache.poi.ddf.EscherRecord
clone, display, fillFields, getChild, getChildRecords, getInstance, getOptions, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setChildRecords, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

RECORD_ID

public static final short RECORD_ID
See Also:
Constant Field Values

RECORD_DESCRIPTION

public static final java.lang.String RECORD_DESCRIPTION
See Also:
Constant Field Values
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

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