Package org.apache.poi.hssf.usermodel
Class HSSFPatriarch
- java.lang.Object
-
- 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addShape(HSSFShape shape)
add a shape to this drawingvoid
clear()
remove all shapes inside patriarchboolean
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.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 ShapeHSSFPicture
createPicture(HSSFClientAnchor anchor, int pictureIndex)
Creates a picture.HSSFPicture
createPicture(ClientAnchor anchor, int pictureIndex)
Creates a picture.HSSFPolygon
createPolygon(HSSFClientAnchor anchor)
Creates a polygonHSSFSimpleShape
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 tojava.util.List<HSSFShape>
getChildren()
Returns a unmodifiable list of all shapes contained by the patriarch.int
getX1()
int
getX2()
int
getY1()
int
getY2()
java.util.Iterator<HSSFShape>
iterator()
boolean
removeShape(HSSFShape shape)
remove first level shapesvoid
setCoordinates(int x1, int y1, int x2, int y2)
Sets the coordinate space of this group.
-
-
-
Method Detail
-
removeShape
public boolean removeShape(HSSFShape shape)
Description copied from interface:HSSFShapeContainer
remove first level shapes- Specified by:
removeShape
in interfaceHSSFShapeContainer
- 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 interfaceDrawing<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 interfaceDrawing<HSSFShape>
- Parameters:
anchor
- the client anchor describes how this picture is attached to the sheet.storageId
- the storageId returned byWorkbook.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 interfaceDrawing<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 interfaceHSSFShapeContainer
- Returns:
- Any children contained by this shape.
-
addShape
@Internal public void addShape(HSSFShape shape)
add a shape to this drawing- Specified by:
addShape
in interfaceHSSFShapeContainer
-
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 interfaceHSSFShapeContainer
-
clear
public void clear()
remove all shapes inside patriarch- Specified by:
clear
in interfaceHSSFShapeContainer
-
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 interfaceHSSFShapeContainer
- Returns:
- x coordinate of the left up corner
-
getY1
public int getY1()
- Specified by:
getY1
in interfaceHSSFShapeContainer
- Returns:
- y coordinate of the left up corner
-
getX2
public int getX2()
- Specified by:
getX2
in interfaceHSSFShapeContainer
- Returns:
- x coordinate of the right down corner
-
getY2
public int getY2()
- Specified by:
getY2
in interfaceHSSFShapeContainer
- 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 interfaceDrawing<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
-
-