Class HSLFShape

  • All Implemented Interfaces:
    Shape<HSLFShape,​HSLFTextParagraph>
    Direct Known Subclasses:
    HSLFBackground, HSLFGroupShape, HSLFSimpleShape

    public abstract class HSLFShape
    extends Object
    implements Shape<HSLFShape,​HSLFTextParagraph>
    Represents a Shape which is the elemental object that composes a drawing. This class is a wrapper around EscherSpContainer which holds all information about a shape in PowerPoint document.

    When you add a shape, you usually specify the dimensions of the shape and the position of the upper'left corner of the bounding box for the shape relative to the upper'left corner of the page, worksheet, or slide. Distances in the drawing layer are measured in points (72 points = 1 inch).

    • Constructor Detail

      • HSLFShape

        protected HSLFShape​(EscherContainerRecord escherRecord,
                            ShapeContainer<HSLFShape,​HSLFTextParagraph> parent)
        Create a Shape object. This constructor is used when an existing Shape is read from a PowerPoint document.
        Parameters:
        escherRecord - EscherSpContainer container which holds information about this shape
        parent - the parent of this Shape
    • Method Detail

      • createSpContainer

        protected EscherContainerRecord createSpContainer​(boolean isChild)
        Create and assign the lower level escher record to this shape
      • getShapeType

        public ShapeType getShapeType()
      • setShapeType

        public void setShapeType​(ShapeType type)
      • getAnchor

        public Rectangle2D getAnchor()
        Returns the anchor (the bounding box rectangle) of this shape. All coordinates are expressed in points (72 dpi).
        Specified by:
        getAnchor in interface Shape<HSLFShape,​HSLFTextParagraph>
        Returns:
        the anchor of this shape
      • setAnchor

        public void setAnchor​(Rectangle2D anchor)
        Sets the anchor (the bounding box rectangle) of this shape. All coordinates should be expressed in points (72 dpi).
        Parameters:
        anchor - new anchor
      • moveTo

        public final void moveTo​(double x,
                                 double y)
        Moves the top left corner of the shape to the specified point.
        Parameters:
        x - the x coordinate of the top left corner of the shape
        y - the y coordinate of the top left corner of the shape
      • getEscherChild

        public static <T extends EscherRecord> T getEscherChild​(EscherContainerRecord owner,
                                                                int recordId)
        Helper method to return escher child by record ID
        Returns:
        escher record or null if not found.
      • getEscherChild

        public <T extends EscherRecord> T getEscherChild​(int recordId)
      • setEscherProperty

        public static void setEscherProperty​(AbstractEscherOptRecord opt,
                                             EscherPropertyTypes propType,
                                             int value)
        Set an escher property for this shape.
        Parameters:
        opt - The opt record to set the properties to.
        propType - The type of the property.
        value - value of the property. If value = -1 then the property is removed.
      • setEscherProperty

        @Deprecated
        @Removal(version="5.0.0")
        public void setEscherProperty​(short propId,
                                      int value)
        Set an simple escher property for this shape.
        Parameters:
        propId - The id of the property. One of the constants defined in EscherOptRecord.
        value - value of the property. If value = -1 then the property is removed.
      • setEscherProperty

        public void setEscherProperty​(EscherPropertyTypes propType,
                                      int value)
        Set an simple escher property for this shape.
        Parameters:
        propType - The type of the property.
        value - value of the property. If value = -1 then the property is removed.
      • getEscherProperty

        public int getEscherProperty​(short propId)
        Get the value of a simple escher property for this shape.
        Parameters:
        propId - The id of the property. One of the constants defined in EscherOptRecord.
      • getEscherProperty

        public int getEscherProperty​(EscherPropertyTypes propType)
        Get the value of a simple escher property for this shape.
        Parameters:
        propType - The type of the property. One of the constants defined in EscherOptRecord.
      • getEscherProperty

        @Deprecated
        @Removal(version="5.0.0")
        public int getEscherProperty​(short propId,
                                     int defaultValue)
        Get the value of a simple escher property for this shape.
        Parameters:
        propId - The id of the property. One of the constants defined in EscherOptRecord.
      • getEscherProperty

        public int getEscherProperty​(EscherPropertyTypes type,
                                     int defaultValue)
        Get the value of a simple escher property for this shape.
        Parameters:
        type - The type of the property.
      • getSpContainer

        public EscherContainerRecord getSpContainer()
        Returns:
        The shape container and its children that can represent this shape.
      • afterInsert

        protected void afterInsert​(HSLFSheet sh)
        Event which fires when a shape is inserted in the sheet. In some cases we need to propagate changes to upper level containers.
        Default implementation does nothing.
        Parameters:
        sh - - owning shape
      • setSheet

        public void setSheet​(HSLFSheet sheet)
        Assign the SlideShow this shape belongs to
        Parameters:
        sheet - owner of this shape
      • setShapeId

        public void setShapeId​(int id)
        Sets shape ID
        Parameters:
        id - of the shape
      • getFill

        public HSLFFill getFill()
        Fill properties of this shape
        Returns:
        fill properties of this shape
      • getFillStyle

        public FillStyle getFillStyle()
      • getFlipHorizontal

        public boolean getFlipHorizontal()
      • setFlipHorizontal

        public void setFlipHorizontal​(boolean flip)
      • getFlipVertical

        public boolean getFlipVertical()
      • setFlipVertical

        public void setFlipVertical​(boolean flip)
      • getRotation

        public double getRotation()
      • setRotation

        public void setRotation​(double theta)
      • isPlaceholder

        public boolean isPlaceholder()
      • getClientDataRecord

        public <T extends Record> T getClientDataRecord​(int recordType)
        Find a record in the underlying EscherClientDataRecord
        Parameters:
        recordType - type of the record to search
      • getClientRecords

        protected List<? extends Record> getClientRecords()
        Search for EscherClientDataRecord, if found, convert its contents into an array of HSLF records
        Returns:
        an array of HSLF records contained in the shape's EscherClientDataRecord or null
      • getClientData

        protected HSLFEscherClientDataRecord getClientData​(boolean create)
        Create a new HSLF-specific EscherClientDataRecord
        Parameters:
        create - if true, create the missing record
        Returns:
        the client record or null if it was missing and create wasn't activated