Class ThemesTable

  • All Implemented Interfaces:
    Themes

    public class ThemesTable
    extends POIXMLDocumentPart
    implements Themes
    Class that represents theme of XLSX document. The theme includes specific colors and fonts.
    • Constructor Detail

      • ThemesTable

        public ThemesTable()
        Create a new, empty ThemesTable
      • ThemesTable

        public ThemesTable​(PackagePart part)
                    throws java.io.IOException
        Construct a ThemesTable.
        Parameters:
        part - A PackagePart.
        Throws:
        java.io.IOException
        Since:
        POI 3.14-Beta1
      • ThemesTable

        public ThemesTable​(org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument theme)
        Construct a ThemesTable from an existing ThemeDocument.
        Parameters:
        theme - A ThemeDocument.
    • Method Detail

      • setColorMap

        protected void setColorMap​(IndexedColorMap colorMap)
        called from StylesTable when setting theme, used to adjust colors if a custom indexed mapping is defined
        Parameters:
        colorMap -
      • getThemeColor

        public XSSFColor getThemeColor​(int idx)
        Convert a theme "index" (as used by fonts etc) into a color.
        Specified by:
        getThemeColor in interface Themes
        Parameters:
        idx - A theme "index"
        Returns:
        The mapped XSSFColor, or null if not mapped.
      • inheritFromThemeAsRequired

        public void inheritFromThemeAsRequired​(XSSFColor color)
        If the colour is based on a theme, then inherit information (currently just colours) from it as required.
        Specified by:
        inheritFromThemeAsRequired in interface Themes
      • writeTo

        public void writeTo​(java.io.OutputStream out)
                     throws java.io.IOException
        Write this table out as XML.
        Parameters:
        out - The stream to write to.
        Throws:
        java.io.IOException - if an error occurs while writing.
      • 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