org.apache.poi.sl.draw

## Class DrawFactory

- java.lang.Object
- - org.apache.poi.sl.draw.DrawFactory

-     public class DrawFactory
      extends java.lang.Object

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DrawFactory()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `drawShape(java.awt.Graphics2D graphics, Shape<?,?> shape, java.awt.geom.Rectangle2D bounds)` Convenience method for drawing single shapes.
    `DrawBackground` | `getDrawable(Background<?,?> shape)`
    `DrawConnectorShape` | `getDrawable(ConnectorShape<?,?> shape)`
    `DrawFreeformShape` | `getDrawable(FreeformShape<?,?> shape)`
    `DrawGraphicalFrame` | `getDrawable(GraphicalFrame<?,?> shape)`
    `DrawGroupShape` | `getDrawable(GroupShape<?,?> shape)`
    `DrawMasterSheet` | `getDrawable(MasterSheet<?,?> sheet)`
    `DrawPictureShape` | `getDrawable(PictureShape<?,?> shape)`
    `Drawable` | `getDrawable(Shape<?,?> shape)`
    `DrawSheet` | `getDrawable(Sheet<?,?> sheet)`
    `DrawSlide` | `getDrawable(Slide<?,?> sheet)`
    `DrawTableShape` | `getDrawable(TableShape<?,?> shape)`
    `DrawTextBox` | `getDrawable(TextBox<?,?> shape)`
    `DrawTextParagraph` | `getDrawable(TextParagraph<?,?,?> paragraph)`
    `DrawTextShape` | `getDrawable(TextShape<?,?> shape)`
    `DrawFontManager` | `getFontManager(java.awt.Graphics2D graphics)` Return a FontManager, either registered beforehand or a default implementation
    `static DrawFactory` | `getInstance(java.awt.Graphics2D graphics)` Returns the DrawFactory, preferably via a graphics instance.
    `DrawPaint` | `getPaint(PlaceableShape<?,?> shape)`
    `DrawTextFragment` | `getTextFragment(java.awt.font.TextLayout layout, java.text.AttributedString str)`
    `static void` | `setDefaultFactory(DrawFactory factory)` Set a custom draw factory for the current thread.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DrawFactory

          public DrawFactory()

  - ### Method Detail

    - #### setDefaultFactory

          public static void setDefaultFactory(DrawFactory factory)

      Set a custom draw factory for the current thread. This is a fallback, for operations where usercode can't set a graphics context. Preferably use the rendering hint `Drawable.DRAW_FACTORY` to set the factory.
      Parameters:
        `factory` - the custom factory or `null` to reset/remove the default factory

    - #### getInstance

          public static DrawFactory getInstance(java.awt.Graphics2D graphics)

      Returns the DrawFactory, preferably via a graphics instance. If graphics is null, the current thread local is checked or if it is not set, a new factory is created.
      Parameters:
        `graphics` - the current graphics context or null
      Returns:
        the draw factory

    - #### getDrawable

          public Drawable getDrawable(Shape<?,?> shape)

    - #### getDrawable

          public DrawSlide getDrawable(Slide<?,?> sheet)

    - #### getDrawable

          public DrawSheet getDrawable(Sheet<?,?> sheet)

    - #### getDrawable

          public DrawMasterSheet getDrawable(MasterSheet<?,?> sheet)

    - #### getDrawable

          public DrawTextBox getDrawable(TextBox<?,?> shape)

    - #### getDrawable

          public DrawFreeformShape getDrawable(FreeformShape<?,?> shape)

    - #### getDrawable

          public DrawConnectorShape getDrawable(ConnectorShape<?,?> shape)

    - #### getDrawable

          public DrawTableShape getDrawable(TableShape<?,?> shape)

    - #### getDrawable

          public DrawTextShape getDrawable(TextShape<?,?> shape)

    - #### getDrawable

          public DrawGroupShape getDrawable(GroupShape<?,?> shape)

    - #### getDrawable

          public DrawPictureShape getDrawable(PictureShape<?,?> shape)

    - #### getDrawable

          public DrawGraphicalFrame getDrawable(GraphicalFrame<?,?> shape)

    - #### getDrawable

          public DrawTextParagraph getDrawable(TextParagraph<?,?,?> paragraph)

    - #### getDrawable

          public DrawBackground getDrawable(Background<?,?> shape)

    - #### getTextFragment

          public DrawTextFragment getTextFragment(java.awt.font.TextLayout layout,
                                                  java.text.AttributedString str)

    - #### getPaint

          public DrawPaint getPaint(PlaceableShape<?,?> shape)

    - #### drawShape

          public void drawShape(java.awt.Graphics2D graphics,
                                Shape<?,?> shape,
                                java.awt.geom.Rectangle2D bounds)

      Convenience method for drawing single shapes. For drawing whole slides, use `Sheet.draw(Graphics2D)`
      Parameters:
        `graphics` - the graphics context to draw to
        `shape` - the shape
        `bounds` - the bounds within the graphics context to draw to

    - #### getFontManager

          public DrawFontManager getFontManager(java.awt.Graphics2D graphics)

      Return a FontManager, either registered beforehand or a default implementation
      Parameters:
        `graphics` - the graphics context holding potentially a font manager
      Returns:
        the font manager

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