org.apache.poi.hslf.usermodel

## Class HSLFGroupShape

- java.lang.Object
- - org.apache.poi.hslf.usermodel.HSLFShape
  - - 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.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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
    `HSLFObjectShape` | `createOleShape(PictureData pictureData)` Create a new OLE object shape with the given pictureData as preview image
    `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, getEscherProperty, getEscherProperty, getEscherProperty, getFill, getFillStyle, getFlipHorizontal, getFlipVertical, getParent, getRotation, getShapeId, getShapeName, getSheet, getSpContainer, isPlaceholder, moveTo, setEscherProperty, setEscherProperty, setEscherProperty, 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, getShapeId, getShapeName, getSheet`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

    - ### 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

    - #### createOleShape

          public HSLFObjectShape createOleShape(PictureData pictureData)

      Description copied from interface: `ShapeContainer`
      Create a new OLE object shape with the given pictureData as preview image
      Specified by:
        `createOleShape` in interface `HSLFShapeContainer`
      Specified by:
        `createOleShape` in interface `ShapeContainer<HSLFShape,HSLFTextParagraph>`
      Parameters:
        `pictureData` - the preview image

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