org.apache.poi.xssf.usermodel
Class XSSFDrawing

java.lang.Object
  extended by org.apache.poi.POIXMLDocumentPart
      extended by org.apache.poi.xssf.usermodel.XSSFDrawing
All Implemented Interfaces:
java.lang.Iterable<XSSFShape>, Drawing<XSSFShape>, ShapeContainer<XSSFShape>

public final class XSSFDrawing
extends POIXMLDocumentPart
implements Drawing<XSSFShape>

Represents a SpreadsheetML drawing


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.poi.POIXMLDocumentPart
POIXMLDocumentPart.RelationPart
 
Field Summary
protected static java.lang.String NAMESPACE_A
           
protected static java.lang.String NAMESPACE_C
           
 
Constructor Summary
protected XSSFDrawing()
          Create a new SpreadsheetML drawing
  XSSFDrawing(PackagePart part)
          Construct a SpreadsheetML drawing from a package part
 
Method Summary
protected  PackageRelationship addPictureReference(int pictureIndex)
          Add the indexed picture to this drawing relations
protected  void commit()
          Save the content in the underlying package part.
 XSSFClientAnchor createAnchor(int dx1, int dy1, int dx2, int dy2, int col1, int row1, int col2, int row2)
           
 XSSFComment createCellComment(ClientAnchor anchor)
          Creates a comment.
 XSSFChart createChart(ClientAnchor anchor)
           
 XSSFChart createChart(XSSFClientAnchor anchor)
          Creates a chart.
 XSSFConnector createConnector(XSSFClientAnchor anchor)
          Creates a simple shape.
 XSSFShapeGroup createGroup(XSSFClientAnchor anchor)
          Creates a simple shape.
 XSSFObjectData createObjectData(ClientAnchor anchor, int storageId, int pictureIndex)
           
 XSSFPicture createPicture(ClientAnchor anchor, int pictureIndex)
           
 XSSFPicture createPicture(XSSFClientAnchor anchor, int pictureIndex)
          Creates a picture.
 XSSFSimpleShape createSimpleShape(XSSFClientAnchor anchor)
          Creates a simple shape.
 XSSFTextBox createTextbox(XSSFClientAnchor anchor)
          Constructs a textbox under the drawing.
 java.util.List<XSSFChart> getCharts()
          Returns all charts in this drawing.
 org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing getCTDrawing()
          Return the underlying CTDrawing bean, the root element of the SpreadsheetML Drawing part.
 java.util.List<XSSFShape> getShapes()
           
 java.util.List<XSSFShape> getShapes(XSSFShapeGroup groupshape)
           
 XSSFSheet getSheet()
           
 java.util.Iterator<XSSFShape> iterator()
           
 
Methods inherited from class org.apache.poi.POIXMLDocumentPart
_invokeOnDocumentRead, addRelation, createRelationship, createRelationship, createRelationship, getNextPartNumber, getPackagePart, getParent, getRelationById, getRelationId, getRelationParts, getRelations, getTargetPart, onDocumentCreate, onDocumentRead, onDocumentRemove, onSave, prepareForCommit, read, rebase, removeRelation, removeRelation, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NAMESPACE_A

protected static final java.lang.String NAMESPACE_A
See Also:
Constant Field Values

NAMESPACE_C

protected static final java.lang.String NAMESPACE_C
See Also:
Constant Field Values
Constructor Detail

XSSFDrawing

protected XSSFDrawing()
Create a new SpreadsheetML drawing

See Also:
XSSFSheet.createDrawingPatriarch()

XSSFDrawing

public XSSFDrawing(PackagePart part)
            throws java.io.IOException,
                   org.apache.xmlbeans.XmlException
Construct a SpreadsheetML drawing from a package part

Parameters:
part - the package part holding the drawing data, the content type must be application/vnd.openxmlformats-officedocument.drawing+xml
Throws:
java.io.IOException
org.apache.xmlbeans.XmlException
Since:
POI 3.14-Beta1
Method Detail

getCTDrawing

@Internal
public org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing getCTDrawing()
Return the underlying CTDrawing bean, the root element of the SpreadsheetML Drawing part.

Returns:
the underlying CTDrawing bean

commit

protected void commit()
               throws java.io.IOException
Description copied from class: POIXMLDocumentPart
Save the content in the underlying package part. Default implementation is empty meaning that the package part is left unmodified. Sub-classes should override and add logic to marshal the "model" into Ooxml4J. For example, the code saving a generic XML entry may look as follows:
 protected void commit() throws IOException {
   PackagePart part = getPackagePart();
   OutputStream out = part.getOutputStream();
   XmlObject bean = getXmlBean(); //the "model" which holds changes in memory
   bean.save(out, DEFAULT_XML_OPTIONS);
   out.close();
 }
 

Overrides:
commit in class POIXMLDocumentPart
Throws:
java.io.IOException - a subclass may throw an IOException if the changes can't be committed

createAnchor

public XSSFClientAnchor createAnchor(int dx1,
                                     int dy1,
                                     int dx2,
                                     int dy2,
                                     int col1,
                                     int row1,
                                     int col2,
                                     int row2)
Specified by:
createAnchor in interface Drawing<XSSFShape>

createTextbox

public XSSFTextBox createTextbox(XSSFClientAnchor anchor)
Constructs a textbox under the drawing.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created textbox.

createPicture

public XSSFPicture createPicture(XSSFClientAnchor anchor,
                                 int pictureIndex)
Creates a picture.

Parameters:
anchor - the client anchor describes how this picture is attached to the sheet.
pictureIndex - the index of the picture in the workbook collection of pictures, XSSFWorkbook.getAllPictures() .
Returns:
the newly created picture shape.

createPicture

public XSSFPicture createPicture(ClientAnchor anchor,
                                 int pictureIndex)
Specified by:
createPicture in interface Drawing<XSSFShape>

createChart

public XSSFChart createChart(XSSFClientAnchor anchor)
Creates a chart.

Parameters:
anchor - the client anchor describes how this chart is attached to the sheet.
Returns:
the newly created chart
See Also:
createChart(ClientAnchor)

createChart

public XSSFChart createChart(ClientAnchor anchor)
Specified by:
createChart in interface Drawing<XSSFShape>

addPictureReference

protected PackageRelationship addPictureReference(int pictureIndex)
Add the indexed picture to this drawing relations

Parameters:
pictureIndex - the index of the picture in the workbook collection of pictures, XSSFWorkbook.getAllPictures() .

createSimpleShape

public XSSFSimpleShape createSimpleShape(XSSFClientAnchor anchor)
Creates a simple shape. This includes such shapes as lines, rectangles, and ovals.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created shape.

createConnector

public XSSFConnector createConnector(XSSFClientAnchor anchor)
Creates a simple shape. This includes such shapes as lines, rectangles, and ovals.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created shape.

createGroup

public XSSFShapeGroup createGroup(XSSFClientAnchor anchor)
Creates a simple shape. This includes such shapes as lines, rectangles, and ovals.

Parameters:
anchor - the client anchor describes how this group is attached to the sheet.
Returns:
the newly created shape.

createCellComment

public XSSFComment createCellComment(ClientAnchor anchor)
Creates a comment.

Specified by:
createCellComment in interface Drawing<XSSFShape>
Parameters:
anchor - the client anchor describes how this comment is attached to the sheet.
Returns:
the newly created comment.

createObjectData

public XSSFObjectData createObjectData(ClientAnchor anchor,
                                       int storageId,
                                       int pictureIndex)
Specified by:
createObjectData in interface Drawing<XSSFShape>

getCharts

public java.util.List<XSSFChart> getCharts()
Returns all charts in this drawing.


getShapes

public java.util.List<XSSFShape> getShapes()
Returns:
list of shapes in this drawing

getShapes

public java.util.List<XSSFShape> getShapes(XSSFShapeGroup groupshape)
Returns:
list of shapes in this shape group

iterator

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

getSheet

public XSSFSheet getSheet()
Returns:
the sheet associated with the drawing