org.apache.poi.hslf.usermodel
Class HSLFGroupShape

java.lang.Object
  extended by org.apache.poi.hslf.usermodel.HSLFShape
      extended by org.apache.poi.hslf.usermodel.HSLFGroupShape
All Implemented Interfaces:
java.lang.Iterable<HSLFShape>, HSLFShapeContainer, GroupShape<HSLFShape,HSLFTextParagraph>, PlaceableShape<HSLFShape,HSLFTextParagraph>, Shape<HSLFShape,HSLFTextParagraph>, ShapeContainer<HSLFShape,HSLFTextParagraph>
Direct Known Subclasses:
HSLFTable

public class HSLFGroupShape
extends HSLFShape
implements HSLFShapeContainer, GroupShape<HSLFShape,HSLFTextParagraph>

Represents a group of shapes.

Author:
Yegor Kozlov

Constructor Summary
  HSLFGroupShape()
          Create a new ShapeGroup.
protected HSLFGroupShape(EscherContainerRecord escherRecord, ShapeContainer<HSLFShape,HSLFTextParagraph> parent)
          Create a ShapeGroup object and initialize it from the supplied Record container.
  HSLFGroupShape(ShapeContainer<HSLFShape,HSLFTextParagraph> parent)
          Create a new ShapeGroup.
 
Method Summary
 void addShape(HSLFShape shape)
          Add a shape to this group.
 HSLFAutoShape createAutoShape()
          create a new shape with a predefined geometry and add it to this shape container
 HSLFConnectorShape createConnector()
          create a connector
 HSLFFreeformShape createFreeform()
          create a new shape with a custom geometry
 HSLFGroupShape createGroup()
          create a group of shapes belonging to this container
 HSLFPictureShape createPicture(PictureData pictureData)
          create a picture belonging to this container
protected  EscherContainerRecord createSpContainer(boolean isChild)
          Create a new ShapeGroup and create an instance of EscherSpgrContainer which represents a group of shapes
 HSLFTable createTable(int numRows, int numCols)
          Create a new Table of the given number of rows and columns
 HSLFTextBox createTextBox()
          create a text box
 java.awt.geom.Rectangle2D getAnchor()
          Returns the anchor (the bounding box rectangle) of this shape group.
<T extends EscherRecord>
T
getEscherChild(int recordId)
           
 HSLFHyperlink getHyperlink()
          Returns null - shape groups can't have hyperlinks
 java.awt.geom.Rectangle2D getInteriorAnchor()
          Gets the coordinate space of this group.
 java.util.List<HSLFShape> getShapes()
          Returns an list containing all of the elements in this container in proper sequence (from first to last element).
 ShapeType getShapeType()
          Return type of the shape.
 java.util.Iterator<HSLFShape> iterator()
           
protected  void moveAndScale(java.awt.geom.Rectangle2D anchorDest)
          Moves and scales this ShapeGroup to the specified anchor.
 boolean removeShape(HSLFShape shape)
          Removes the specified shape from this sheet, if it is present (optional operation).
 void setAnchor(java.awt.geom.Rectangle2D anchor)
          Sets the anchor (the bounding box rectangle) of this shape.
protected  void setExteriorAnchor(java.awt.geom.Rectangle2D anchor)
           
 void setInteriorAnchor(java.awt.geom.Rectangle2D anchor)
          Sets the coordinate space of this group.
 
Methods inherited from class org.apache.poi.hslf.usermodel.HSLFShape
afterInsert, draw, getClientData, getClientDataRecord, getClientRecords, getEscherChild, getEscherChild, getEscherChild, getEscherOptRecord, getEscherProperty, getEscherProperty, getEscherProperty, getFill, getFillStyle, getFlipHorizontal, getFlipVertical, getParent, getRotation, getShapeId, getShapeName, getSheet, getSpContainer, isPlaceholder, moveTo, setEscherProperty, setEscherProperty, setFlipHorizontal, setFlipVertical, setRotation, setShapeId, setShapeType, setSheet
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.poi.sl.usermodel.Shape
draw, getParent, getSheet
 
Methods inherited from interface org.apache.poi.sl.usermodel.PlaceableShape
getFlipHorizontal, getFlipVertical, getParent, getRotation, getSheet, setFlipHorizontal, setFlipVertical, setRotation
 

Constructor Detail

HSLFGroupShape

public HSLFGroupShape()
Create a new ShapeGroup. This constructor is used when a new shape is created.


HSLFGroupShape

public HSLFGroupShape(ShapeContainer<HSLFShape,HSLFTextParagraph> parent)
Create a new ShapeGroup. This constructor is used when a new shape is created.

Parameters:
parent - the parent of the shape

HSLFGroupShape

protected HSLFGroupShape(EscherContainerRecord escherRecord,
                         ShapeContainer<HSLFShape,HSLFTextParagraph> parent)
Create a ShapeGroup object and initialize it from the supplied Record container.

Parameters:
escherRecord - EscherSpContainer container which holds information about this shape
parent - the parent of the shape
Method Detail

setAnchor

public void setAnchor(java.awt.geom.Rectangle2D anchor)
Description copied from class: HSLFShape
Sets the anchor (the bounding box rectangle) of this shape. All coordinates should be expressed in points (72 dpi).

Specified by:
setAnchor in interface PlaceableShape<HSLFShape,HSLFTextParagraph>
Overrides:
setAnchor in class HSLFShape
Parameters:
anchor - new anchor

setInteriorAnchor

public void setInteriorAnchor(java.awt.geom.Rectangle2D anchor)
Description copied from interface: GroupShape
Sets the coordinate space of this group. All children are constrained to these coordinates.

Specified by:
setInteriorAnchor in interface GroupShape<HSLFShape,HSLFTextParagraph>
Parameters:
anchor - the coordinate space of this group

getInteriorAnchor

public java.awt.geom.Rectangle2D getInteriorAnchor()
Description copied from interface: GroupShape
Gets the coordinate space of this group. All children are constrained to these coordinates.

Specified by:
getInteriorAnchor in interface GroupShape<HSLFShape,HSLFTextParagraph>
Returns:
the coordinate space of this group

setExteriorAnchor

protected void setExteriorAnchor(java.awt.geom.Rectangle2D anchor)

createSpContainer

protected EscherContainerRecord createSpContainer(boolean isChild)
Create a new ShapeGroup and create an instance of EscherSpgrContainer which represents a group of shapes

Overrides:
createSpContainer in class HSLFShape

addShape

public void addShape(HSLFShape shape)
Add a shape to this group.

Specified by:
addShape in interface ShapeContainer<HSLFShape,HSLFTextParagraph>
Parameters:
shape - - the Shape to add

moveAndScale

protected void moveAndScale(java.awt.geom.Rectangle2D anchorDest)
Moves and scales this ShapeGroup to the specified anchor.


getAnchor

public java.awt.geom.Rectangle2D getAnchor()
Returns the anchor (the bounding box rectangle) of this shape group. All coordinates are expressed in points (72 dpi).

Specified by:
getAnchor in interface PlaceableShape<HSLFShape,HSLFTextParagraph>
Specified by:
getAnchor in interface Shape<HSLFShape,HSLFTextParagraph>
Overrides:
getAnchor in class HSLFShape
Returns:
the anchor of this shape group

getShapeType

public ShapeType getShapeType()
Return type of the shape. In most cases shape group type is ShapeType.NOT_PRIMITIVE

Overrides:
getShapeType in class HSLFShape
Returns:
type of the shape.

getHyperlink

public HSLFHyperlink getHyperlink()
Returns null - shape groups can't have hyperlinks

Returns:
null.

getEscherChild

public <T extends EscherRecord> T getEscherChild(int recordId)
Overrides:
getEscherChild in class HSLFShape

iterator

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

removeShape

public boolean removeShape(HSLFShape shape)
Description copied from interface: ShapeContainer
Removes the specified shape from this sheet, if it is present (optional operation). If this sheet does not contain the element, it is unchanged.

Specified by:
removeShape in interface ShapeContainer<HSLFShape,HSLFTextParagraph>
Parameters:
shape - the shape to be removed from this sheet, if present
Returns:
true if this sheet contained the specified element

getShapes

public java.util.List<HSLFShape> getShapes()
Description copied from interface: ShapeContainer
Returns an list containing all of the elements in this container in proper sequence (from first to last element).

Specified by:
getShapes in interface ShapeContainer<HSLFShape,HSLFTextParagraph>
Returns:
an list containing all of the elements in this container in proper sequence

createTextBox

public HSLFTextBox createTextBox()
Description copied from interface: ShapeContainer
create a text box

Specified by:
createTextBox in interface HSLFShapeContainer
Specified by:
createTextBox in interface ShapeContainer<HSLFShape,HSLFTextParagraph>

createAutoShape

public HSLFAutoShape createAutoShape()
Description copied from interface: ShapeContainer
create a new shape with a predefined geometry and add it to this shape container

Specified by:
createAutoShape in interface HSLFShapeContainer
Specified by:
createAutoShape in interface ShapeContainer<HSLFShape,HSLFTextParagraph>

createFreeform

public HSLFFreeformShape createFreeform()
Description copied from interface: ShapeContainer
create a new shape with a custom geometry

Specified by:
createFreeform in interface HSLFShapeContainer
Specified by:
createFreeform in interface ShapeContainer<HSLFShape,HSLFTextParagraph>

createConnector

public HSLFConnectorShape createConnector()
Description copied from interface: ShapeContainer
create a connector

Specified by:
createConnector in interface HSLFShapeContainer
Specified by:
createConnector in interface ShapeContainer<HSLFShape,HSLFTextParagraph>

createGroup

public HSLFGroupShape createGroup()
Description copied from interface: ShapeContainer
create a group of shapes belonging to this container

Specified by:
createGroup in interface HSLFShapeContainer
Specified by:
createGroup in interface ShapeContainer<HSLFShape,HSLFTextParagraph>

createPicture

public HSLFPictureShape createPicture(PictureData pictureData)
Description copied from interface: ShapeContainer
create a picture belonging to this container

Specified by:
createPicture in interface HSLFShapeContainer
Specified by:
createPicture in interface ShapeContainer<HSLFShape,HSLFTextParagraph>

createTable

public HSLFTable createTable(int numRows,
                             int numCols)
Description copied from interface: ShapeContainer
Create a new Table of the given number of rows and columns

Specified by:
createTable in interface ShapeContainer<HSLFShape,HSLFTextParagraph>
Parameters:
numRows - the number of rows
numCols - the number of columns


Copyright 2017 The Apache Software Foundation or its licensors, as applicable.