Package org.apache.poi.xslf.usermodel
Class XSLFShape
- java.lang.Object
-
- org.apache.poi.xslf.usermodel.XSLFShape
-
- All Implemented Interfaces:
Shape<XSLFShape,XSLFTextParagraph>
- Direct Known Subclasses:
XSLFGraphicFrame,XSLFGroupShape,XSLFShadow,XSLFSimpleShape
@Beta public abstract class XSLFShape extends Object implements Shape<XSLFShape,XSLFTextParagraph>
Base super-class class for all shapes in PresentationML
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceXSLFShape.ReparseFactory<T extends XmlObject>
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddraw(Graphics2D graphics, Rectangle2D bounds)booleanfetchShapeProperty(PropertyFetcher<?> visitor)Walk up the inheritance tree and fetch shape properties.protected org.openxmlformats.schemas.presentationml.x2006.main.CTBackgroundPropertiesgetBgPr()protected org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReferencegetBgRef()protected <T extends XmlObject>
TgetChild(Class<T> childClass, String namespace, String nodename)Return direct child objects of this shapeprotected org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingPropsgetCNvPr()protected PaintStylegetFillPaint()protected org.openxmlformats.schemas.drawingml.x2006.main.CTGroupShapePropertiesgetGrpSpPr()XSLFShapeContainergetParent()PlaceholdergetPlaceholder()XSLFPlaceholderDetailsgetPlaceholderDetails()intgetShapeId()StringgetShapeName()protected XmlObjectgetShapeProperties()Return the shape specific (visual) propertiesXSLFSheetgetSheet()protected org.openxmlformats.schemas.drawingml.x2006.main.CTShapeStylegetSpStyle()XmlObjectgetXmlObject()booleanisPlaceholder()protected PaintStyleselectPaint(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 PaintStyleselectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties blipFill, PackagePart parentPart, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)protected PaintStyleselectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTGradientFillProperties gradFill, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)protected PaintStyleselectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)protected PaintStyleselectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties solidFill, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)protected PaintStyleselectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference fillRef, XSLFTheme theme, boolean isLineStyle, boolean hasPlaceholder)protected <T extends XmlObject>
TselectProperty(Class<T> resultClass, String xquery)As there's no xmlbeans hierarchy, but XSLF works with subclassing, not all child classes work with aCTShapeobject, but often contain the same properties.voidsetParent(XSLFShapeContainer parent)voidsetPlaceholder(Placeholder placeholder)
-
-
-
Method Detail
-
getXmlObject
public final XmlObject getXmlObject()
- Returns:
- the xml bean holding this shape's data
-
getSheet
public XSLFSheet getSheet()
- Specified by:
getSheetin interfaceShape<XSLFShape,XSLFTextParagraph>
-
getShapeName
public String getShapeName()
- Specified by:
getShapeNamein interfaceShape<XSLFShape,XSLFTextParagraph>
-
getShapeId
public int getShapeId()
- Specified by:
getShapeIdin interfaceShape<XSLFShape,XSLFTextParagraph>
-
setParent
public void setParent(XSLFShapeContainer parent)
-
getParent
public XSLFShapeContainer getParent()
- Specified by:
getParentin interfaceShape<XSLFShape,XSLFTextParagraph>
-
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 XmlObject> T getChild(Class<T> childClass, String namespace, String nodename)
Return direct child objects of this shape- Parameters:
childClass- the class to cast the properties tonamespace- 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()
-
getPlaceholder
public Placeholder getPlaceholder()
- See Also:
PlaceholderDetails.getPlaceholder()
-
setPlaceholder
public void setPlaceholder(Placeholder placeholder)
-
getPlaceholderDetails
public XSLFPlaceholderDetails getPlaceholderDetails()
- See Also:
SimpleShape.getPlaceholderDetails()
-
selectProperty
protected <T extends XmlObject> T selectProperty(Class<T> resultClass, String xquery)
As there's no xmlbeans hierarchy, but XSLF works with subclassing, not all child classes work with aCTShapeobject, but often contain the same properties. This method is the generalized form of selecting and casting those properties.- Parameters:
resultClass- the requested result classxquery- the simple (xmlbean) xpath expression to the property- Returns:
- the xml object at the xpath location, or null if not found
-
fetchShapeProperty
@Internal public boolean fetchShapeProperty(PropertyFetcher<?> visitor)
Walk up the inheritance tree and fetch shape properties.The following order of inheritance is assumed:
- slide
- slideLayout
- slideMaster
- Parameters:
visitor- the object that collects the desired property- Returns:
- true if the property was fetched
-
selectPaint
protected PaintStyle selectPaint(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 propertiesphClr- context colorparentPart- 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 PaintStyle selectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)
-
selectPaint
protected PaintStyle selectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties solidFill, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)
-
selectPaint
protected PaintStyle selectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties blipFill, PackagePart parentPart, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)
-
selectPaint
protected PaintStyle selectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTGradientFillProperties gradFill, org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor phClr, XSLFTheme theme)
-
selectPaint
protected PaintStyle selectPaint(org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference fillRef, XSLFTheme theme, boolean isLineStyle, boolean hasPlaceholder)
-
draw
public void draw(Graphics2D graphics, Rectangle2D bounds)
- Specified by:
drawin interfaceShape<XSLFShape,XSLFTextParagraph>
-
getShapeProperties
protected XmlObject getShapeProperties()
Return the shape specific (visual) properties- Returns:
- the shape specific properties
-
-