Class XSLFShape

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected XSLFShape​(org.apache.xmlbeans.XmlObject shape, XSLFSheet sheet)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void draw​(java.awt.Graphics2D graphics, java.awt.geom.Rectangle2D bounds)
      Convenience method to draw a single shape
      protected boolean fetchShapeProperty​(PropertyFetcher<?> visitor)
      Walk up the inheritance tree and fetch shape properties.
      protected org.openxmlformats.schemas.presentationml.x2006.main.CTBackgroundProperties getBgPr()  
      protected org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference getBgRef()  
      protected <T extends org.apache.xmlbeans.XmlObject>
      T
      getChild​(java.lang.Class<T> childClass, java.lang.String namespace, java.lang.String nodename)
      Return direct child objects of this shape
      protected org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps getCNvPr()  
      protected PaintStyle getFillPaint()  
      protected org.openxmlformats.schemas.drawingml.x2006.main.CTGroupShapeProperties getGrpSpPr()  
      XSLFShapeContainer getParent()  
      Placeholder getPlaceholder()  
      XSLFPlaceholderDetails getPlaceholderDetails()  
      int getShapeId()
      Returns a unique identifier for this shape within the current slide.
      java.lang.String getShapeName()  
      protected org.apache.xmlbeans.XmlObject getShapeProperties()
      Return the shape specific (visual) properties
      XSLFSheet getSheet()  
      protected org.openxmlformats.schemas.drawingml.x2006.main.CTShapeStyle getSpStyle()  
      org.apache.xmlbeans.XmlObject getXmlObject()  
      boolean isPlaceholder()  
      protected static PaintStyle selectPaint​(org.apache.poi.xslf.usermodel.XSLFPropertiesDelegate.XSLFFillProperties fp, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, PackagePart parentPart, XSLFTheme theme, boolean hasPlaceholder)
      Convert shape fill into java.awt.Paint.
      protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties blipFill, PackagePart parentPart)  
      protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTGradientFillProperties gradFill, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)  
      protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties solidFill, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)  
      protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference fillRef, XSLFTheme theme, boolean isLineStyle, boolean hasPlaceholder)  
      protected <T extends org.apache.xmlbeans.XmlObject>
      T
      selectProperty​(java.lang.Class<T> resultClass, java.lang.String xquery)
      As there's no xmlbeans hierarchy, but XSLF works with subclassing, not all child classes work with a CTShape object, but often contain the same properties.
      void setParent​(XSLFShapeContainer parent)  
      void setPlaceholder​(Placeholder placeholder)  
      • 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

        getAnchor
    • Constructor Detail

      • XSLFShape

        protected XSLFShape​(org.apache.xmlbeans.XmlObject shape,
                            XSLFSheet sheet)
    • Method Detail

      • getXmlObject

        public final org.apache.xmlbeans.XmlObject getXmlObject()
        Returns:
        the xml bean holding this shape's data
      • getShapeId

        public int getShapeId()
        Description copied from interface: Shape
        Returns a unique identifier for this shape within the current slide. This ID may be used to assist in uniquely identifying this object so that it can be referred to by other parts of the document.

        If multiple objects within the same slide share the same id attribute value, then the document shall be considered non-conformant.

        Specified by:
        getShapeId in interface Shape<XSLFShape,​XSLFTextParagraph>
        Returns:
        unique id of this shape
      • getFillPaint

        protected PaintStyle getFillPaint()
      • getBgPr

        protected org.openxmlformats.schemas.presentationml.x2006.main.CTBackgroundProperties getBgPr()
      • getBgRef

        protected org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference getBgRef()
      • getGrpSpPr

        protected org.openxmlformats.schemas.drawingml.x2006.main.CTGroupShapeProperties getGrpSpPr()
      • getCNvPr

        protected org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps getCNvPr()
      • getSpStyle

        protected org.openxmlformats.schemas.drawingml.x2006.main.CTShapeStyle getSpStyle()
      • getChild

        protected <T extends org.apache.xmlbeans.XmlObject> T getChild​(java.lang.Class<T> childClass,
                                                                       java.lang.String namespace,
                                                                       java.lang.String nodename)
        Return direct child objects of this shape
        Parameters:
        childClass - the class to cast the properties to
        namespace - the namespace - usually it is "http://schemas.openxmlformats.org/presentationml/2006/main"
        nodename - the node name, without prefix
        Returns:
        the properties object or null if it can't be found
      • isPlaceholder

        public boolean isPlaceholder()
      • selectProperty

        protected <T extends org.apache.xmlbeans.XmlObject> T selectProperty​(java.lang.Class<T> resultClass,
                                                                             java.lang.String xquery)
        As there's no xmlbeans hierarchy, but XSLF works with subclassing, not all child classes work with a CTShape object, but often contain the same properties. This method is the generalized form of selecting and casting those properties.
        Parameters:
        resultClass - the requested result class
        xquery - the simple (xmlbean) xpath expression to the property
        Returns:
        the xml object at the xpath location, or null if not found
      • fetchShapeProperty

        protected boolean fetchShapeProperty​(PropertyFetcher<?> visitor)
        Walk up the inheritance tree and fetch shape properties.

        The following order of inheritance is assumed:

        1. slide
        2. slideLayout
        3. slideMaster
        Currently themes and their defaults aren't correctly handled
        Parameters:
        visitor - the object that collects the desired property
        Returns:
        true if the property was fetched
      • selectPaint

        protected static PaintStyle selectPaint​(org.apache.poi.xslf.usermodel.XSLFPropertiesDelegate.XSLFFillProperties fp,
                                                org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr,
                                                PackagePart parentPart,
                                                XSLFTheme theme,
                                                boolean hasPlaceholder)
        Convert shape fill into java.awt.Paint. The result is either Color or TexturePaint or GradientPaint or null
        Parameters:
        fp - a properties handler specific to the underlying shape properties
        phClr - context color
        parentPart - the parent package part. Any external references (images, etc.) are resolved relative to it.
        theme - the theme for the shape/sheet
        Returns:
        the applied Paint or null if none was applied
      • selectPaint

        protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties solidFill,
                                                org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr,
                                                XSLFTheme theme)
      • selectPaint

        protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties blipFill,
                                                PackagePart parentPart)
      • selectPaint

        protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTGradientFillProperties gradFill,
                                                org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr,
                                                XSLFTheme theme)
      • selectPaint

        protected static PaintStyle selectPaint​(org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference fillRef,
                                                XSLFTheme theme,
                                                boolean isLineStyle,
                                                boolean hasPlaceholder)
      • draw

        public void draw​(java.awt.Graphics2D graphics,
                         java.awt.geom.Rectangle2D bounds)
        Description copied from interface: Shape
        Convenience method to draw a single shape
        Specified by:
        draw in interface Shape<XSLFShape,​XSLFTextParagraph>
        Parameters:
        graphics - the graphics context
        bounds - the rectangle to fit the shape to. if null, the bounds of the shape are used.
      • getShapeProperties

        protected org.apache.xmlbeans.XmlObject getShapeProperties()
        Return the shape specific (visual) properties
        Returns:
        the shape specific properties