org.apache.poi.hssf.usermodel
Class HSSFPatriarch

java.lang.Object
  extended by org.apache.poi.hssf.usermodel.HSSFPatriarch
All Implemented Interfaces:
java.lang.Iterable<HSSFShape>, HSSFShapeContainer, Drawing<HSSFShape>, ShapeContainer<HSSFShape>

public final class HSSFPatriarch
extends java.lang.Object
implements HSSFShapeContainer, Drawing<HSSFShape>

The patriarch is the toplevel container for shapes in a sheet. It does little other than act as a container for other shapes and groups.


Method Summary
 void addShape(HSSFShape shape)
          add a shape to this drawing
 void clear()
          remove all shapes inside patriarch
 boolean containsChart()
          Does this HSSFPatriarch contain a chart? (Technically a reference to a chart, since they get stored in a different block of records) FIXME - detect chart in all cases (only seems to work on some charts so far)
 int countOfAllChildren()
          Total count of all children and their children's children.
 HSSFClientAnchor createAnchor(int dx1, int dy1, int dx2, int dy2, int col1, int row1, int col2, int row2)
          Creates a new client anchor and sets the top-left and bottom-right coordinates of the anchor.
 HSSFComment createCellComment(ClientAnchor anchor)
          Creates a comment.
 Chart createChart(ClientAnchor anchor)
          Creates a chart.
 HSSFComment createComment(HSSFAnchor anchor)
          Constructs a cell comment.
 HSSFShapeGroup createGroup(HSSFClientAnchor anchor)
          Creates a new group record stored under this patriarch.
 HSSFObjectData createObjectData(ClientAnchor anchor, int storageId, int pictureIndex)
          Adds a new OLE Package Shape
 HSSFPicture createPicture(ClientAnchor anchor, int pictureIndex)
          Creates a picture.
 HSSFPicture createPicture(HSSFClientAnchor anchor, int pictureIndex)
          Creates a picture.
 HSSFPolygon createPolygon(HSSFClientAnchor anchor)
          Creates a polygon
 HSSFSimpleShape createSimpleShape(HSSFClientAnchor anchor)
          Creates a simple shape.
 HSSFTextbox createTextbox(HSSFClientAnchor anchor)
          Constructs a textbox under the patriarch.
 EscherAggregate getBoundAggregate()
          Returns the aggregate escher record we're bound to
 java.util.List<HSSFShape> getChildren()
          Returns a unmodifiable list of all shapes contained by the patriarch.
protected  HSSFSheet getSheet()
           
 int getX1()
           
 int getX2()
           
 int getY1()
           
 int getY2()
           
 java.util.Iterator<HSSFShape> iterator()
           
protected  void preSerialize()
          check if any shapes contain wrong data At now(13.08.2010) check if patriarch contains 2 or more comments with same coordinates
 boolean removeShape(HSSFShape shape)
          remove first level shapes
 void setCoordinates(int x1, int y1, int x2, int y2)
          Sets the coordinate space of this group.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

preSerialize

protected void preSerialize()
check if any shapes contain wrong data At now(13.08.2010) check if patriarch contains 2 or more comments with same coordinates


removeShape

public boolean removeShape(HSSFShape shape)
Description copied from interface: HSSFShapeContainer
remove first level shapes

Specified by:
removeShape in interface HSSFShapeContainer
Parameters:
shape - to be removed
Returns:
true of shape is removed

createGroup

public HSSFShapeGroup createGroup(HSSFClientAnchor anchor)
Creates a new group record stored under this patriarch.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created group.

createSimpleShape

public HSSFSimpleShape createSimpleShape(HSSFClientAnchor anchor)
Creates a simple shape. This includes such shapes as lines, rectangles, and ovals. Note: Microsoft Excel seems to sometimes disallow higher y1 than y2 or higher x1 than x2 in the anchor, you might need to reverse them and draw shapes vertically or horizontally flipped!

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created shape.

createPicture

public HSSFPicture createPicture(HSSFClientAnchor anchor,
                                 int pictureIndex)
Creates a picture.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
pictureIndex - - pointer to the byte array saved inside workbook in escher bse record
Returns:
the newly created shape.

createPicture

public HSSFPicture createPicture(ClientAnchor anchor,
                                 int pictureIndex)
Description copied from interface: Drawing
Creates a picture.

Specified by:
createPicture in interface Drawing<HSSFShape>
Parameters:
anchor - the client anchor describes how this picture is attached to the sheet.
pictureIndex - the index of the picture in the workbook collection of pictures.
Returns:
newly created shape

createObjectData

public HSSFObjectData createObjectData(ClientAnchor anchor,
                                       int storageId,
                                       int pictureIndex)
Description copied from interface: Drawing
Adds a new OLE Package Shape

Specified by:
createObjectData in interface Drawing<HSSFShape>
Parameters:
anchor - the client anchor describes how this picture is attached to the sheet.
storageId - the storageId returned by Workbook.addOlePackage(byte[], String, String, String)
pictureIndex - the index of the picture (used as preview image) in the workbook collection of pictures.
Returns:
newly created shape

createPolygon

public HSSFPolygon createPolygon(HSSFClientAnchor anchor)
Creates a polygon

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created shape.

createTextbox

public HSSFTextbox createTextbox(HSSFClientAnchor anchor)
Constructs a textbox under the patriarch.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created textbox.

createComment

public HSSFComment createComment(HSSFAnchor anchor)
Constructs a cell comment.

Parameters:
anchor - the client anchor describes how this comment is attached to the sheet.
Returns:
the newly created comment.

createCellComment

public HSSFComment createCellComment(ClientAnchor anchor)
Description copied from interface: Drawing
Creates a comment.

Specified by:
createCellComment in interface Drawing<HSSFShape>
Parameters:
anchor - the client anchor describes how this comment is attached to the sheet.
Returns:
the newly created comment.

getChildren

public java.util.List<HSSFShape> getChildren()
Returns a unmodifiable list of all shapes contained by the patriarch.

Specified by:
getChildren in interface HSSFShapeContainer
Returns:
Any children contained by this shape.

addShape

@Internal
public void addShape(HSSFShape shape)
add a shape to this drawing

Specified by:
addShape in interface HSSFShapeContainer

countOfAllChildren

public int countOfAllChildren()
Total count of all children and their children's children.

Returns:
count of shapes including shapes inside shape groups

setCoordinates

public void setCoordinates(int x1,
                           int y1,
                           int x2,
                           int y2)
Sets the coordinate space of this group. All children are constrained to these coordinates.

Specified by:
setCoordinates in interface HSSFShapeContainer

clear

public void clear()
remove all shapes inside patriarch

Specified by:
clear in interface HSSFShapeContainer

containsChart

public boolean containsChart()
Does this HSSFPatriarch contain a chart? (Technically a reference to a chart, since they get stored in a different block of records) FIXME - detect chart in all cases (only seems to work on some charts so far)


getX1

public int getX1()
Specified by:
getX1 in interface HSSFShapeContainer
Returns:
x coordinate of the left up corner

getY1

public int getY1()
Specified by:
getY1 in interface HSSFShapeContainer
Returns:
y coordinate of the left up corner

getX2

public int getX2()
Specified by:
getX2 in interface HSSFShapeContainer
Returns:
x coordinate of the right down corner

getY2

public int getY2()
Specified by:
getY2 in interface HSSFShapeContainer
Returns:
y coordinate of the right down corner

getBoundAggregate

@Internal
public EscherAggregate getBoundAggregate()
Returns the aggregate escher record we're bound to

Returns:
- low level representation of sheet drawing data

createAnchor

public HSSFClientAnchor createAnchor(int dx1,
                                     int dy1,
                                     int dx2,
                                     int dy2,
                                     int col1,
                                     int row1,
                                     int col2,
                                     int row2)
Creates a new client anchor and sets the top-left and bottom-right coordinates of the anchor.

Specified by:
createAnchor in interface Drawing<HSSFShape>
Parameters:
dx1 - the x coordinate in EMU within the first cell.
dy1 - the y coordinate in EMU within the first cell.
dx2 - the x coordinate in EMU within the second cell.
dy2 - the y coordinate in EMU within the second cell.
col1 - the column (0 based) of the first cell.
row1 - the row (0 based) of the first cell.
col2 - the column (0 based) of the second cell.
row2 - the row (0 based) of the second cell.
Returns:
the newly created client anchor

createChart

@NotImplemented
public Chart createChart(ClientAnchor anchor)
Description copied from interface: Drawing
Creates a chart.

Specified by:
createChart in interface Drawing<HSSFShape>
Parameters:
anchor - the client anchor describes how this chart is attached to the sheet.
Returns:
the newly created chart

iterator

public java.util.Iterator<HSSFShape> iterator()
Specified by:
iterator in interface java.lang.Iterable<HSSFShape>

getSheet

protected HSSFSheet getSheet()