org.apache.poi.xssf.usermodel

## Class XSSFColor

- java.lang.Object
- - org.apache.poi.ss.usermodel.ExtendedColor
  - - org.apache.poi.xssf.usermodel.XSSFColor

- All Implemented Interfaces:
    Color

      public class XSSFColor
      extends ExtendedColor

  Represents a color in SpreadsheetML

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `XSSFColor()` Deprecated. as of 4.0.0, we want to have the indexed map, and all calling contexts have access to it.
    `XSSFColor(byte[] rgb, IndexedColorMap colorMap)`
    `XSSFColor(java.awt.Color clr)` Deprecated. 3.17 beta 1 - pass the workbook styles indexed color map, if any
    `XSSFColor(java.awt.Color clr, IndexedColorMap map)` TEST ONLY
    `XSSFColor(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor color)` Deprecated. 3.17 beta 1 - pass the workbook styles indexed color map, if any
    `XSSFColor(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor color, IndexedColorMap map)` Deprecated. 4.0.0 - use the factory `from(CTColor, IndexedColorMap)` method instead to check for null CTColor instances. Make private eventually
    `XSSFColor(IndexedColorMap colorMap)` new color with the given indexed color map
    `XSSFColor(IndexedColors indexedColor, IndexedColorMap colorMap)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object o)`
    `static XSSFColor` | `from(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor color, IndexedColorMap map)`
    `byte[]` | `getARGB()` Standard Alpha Red Green Blue ctColor value (ARGB).
    `org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor` | `getCTColor()` Returns the underlying XML bean
    `short` | `getIndex()` Indexed ctColor value.
    `short` | `getIndexed()`
    `protected byte[]` | `getIndexedRGB()`
    `byte[]` | `getRGB()` Standard Red Green Blue ctColor value (RGB).
    `protected byte[]` | `getStoredRBG()`
    `int` | `getTheme()` Index into the collection, referencing a particular or value expressed in the Theme part.
    `double` | `getTint()` Specifies the tint value applied to the ctColor.
    `boolean` | `hasAlpha()`
    `int` | `hashCode()`
    `boolean` | `hasTint()`
    `boolean` | `isAuto()` A boolean value indicating the ctColor is automatic and system ctColor dependent.
    `boolean` | `isIndexed()` A boolean value indicating the ctColor is Indexed
    `boolean` | `isRGB()`
    `boolean` | `isThemed()`
    `void` | `setAuto(boolean auto)`
    `void` | `setIndexed(int indexed)` Indexed ctColor value.
    `void` | `setRGB(byte[] rgb)` Standard Alpha Red Green Blue ctColor value (ARGB).
    `void` | `setTheme(int theme)` Index into the collection, referencing a particular or value expressed in the Theme part.
    `void` | `setTint(double tint)` Specifies the tint value applied to the ctColor.
    `static XSSFColor` | `toXSSFColor(Color color)` Checked type cast `color` to an XSSFColor.

    - ### Methods inherited from class org.apache.poi.ss.usermodel.ExtendedColor

      `getARGBHex, getRGBOrARGB, getRGBWithTint, setARGBHex, setColor`

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

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

- - ### Constructor Detail

    - #### XSSFColor

          @Deprecated
           @Removal(version="4.2")
          public XSSFColor(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor color)

      Deprecated. 3.17 beta 1 - pass the workbook styles indexed color map, if any
      Create an instance of XSSFColor from the supplied XML bean, with default color indexes
      Parameters:
        `color` - The `CTColor` to use as color-value.

    - #### XSSFColor

          @Deprecated
           @Removal(version="4.2")
          public XSSFColor(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor color,
                                                                IndexedColorMap map)

      Deprecated. 4.0.0 - use the factory `from(CTColor, IndexedColorMap)` method instead to check for null CTColor instances. Make private eventually
      Create an instance of XSSFColor from the supplied XML bean, with the given color indexes
      Parameters:
        `color` - The `CTColor` to use as color-value.
        `map` - The IndexedColorMap to use instead of the default one

    - #### XSSFColor

          @Deprecated
           @Removal(version="4.2")
          public XSSFColor()

      Deprecated. as of 4.0.0, we want to have the indexed map, and all calling contexts have access to it.
      Create an new instance of XSSFColor, without knowledge of any custom indexed colors. This is OK for just transiently setting indexes, etc. but is discouraged in read/get uses
      See Also:
        `XSSFColor(IndexedColorMap)`, `from(CTColor, IndexedColorMap)`

    - #### XSSFColor

          public XSSFColor(IndexedColorMap colorMap)

      new color with the given indexed color map
      Parameters:
        `colorMap` - The IndexedColorMap to use instead of the default one

    - #### XSSFColor

          @Deprecated
           @Removal(version="4.2")
          public XSSFColor(java.awt.Color clr)

      Deprecated. 3.17 beta 1 - pass the workbook styles indexed color map, if any
      Create an instance of XSSFColor from the awt Color
      Parameters:
        `clr` - awt Color

    - #### XSSFColor

          public XSSFColor(java.awt.Color clr,
                           IndexedColorMap map)

      TEST ONLY
      Parameters:
        `clr` - awt Color
        `map` - The IndexedColorMap to use instead of the default one

    - #### XSSFColor

          public XSSFColor(byte[] rgb,
                           IndexedColorMap colorMap)

      Parameters:
        `rgb` - The RGB-byte-values for the Color
        `colorMap` - The IndexedColorMap to use instead of the default one

    - #### XSSFColor

          public XSSFColor(IndexedColors indexedColor,
                           IndexedColorMap colorMap)

      Parameters:
        `indexedColor` - color index (Enum named for default colors)
        `colorMap` - The IndexedColorMap to use instead of the default one

  - ### Method Detail

    - #### from

          public static XSSFColor from(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor color,
                                       IndexedColorMap map)

      Parameters:
        `color` - The ooxml color object to use
        `map` - The IndexedColorMap to use instead of the default one
      Returns:
        null if color is null, new instance otherwise

    - #### isAuto

          public boolean isAuto()

      A boolean value indicating the ctColor is automatic and system ctColor dependent.
      Specified by:
        `isAuto` in class `ExtendedColor`
      Returns:
        true if the color is automatic

    - #### setAuto

          public void setAuto(boolean auto)

      Parameters:
        `auto` - true if the ctColor is automatic and system ctColor dependent.

    - #### isIndexed

          public boolean isIndexed()

      A boolean value indicating the ctColor is Indexed
      Specified by:
        `isIndexed` in class `ExtendedColor`
      Returns:
        true if the color is indexed

    - #### isRGB

          public boolean isRGB()

      Specified by:
        `isRGB` in class `ExtendedColor`
      Returns:
        true if the ctColor is RGB or ARGB based

    - #### isThemed

          public boolean isThemed()

      Specified by:
        `isThemed` in class `ExtendedColor`
      Returns:
        true if the ctColor is Theme based

    - #### hasAlpha

          public boolean hasAlpha()

      Returns:
        true if the ctColor has a alpha

    - #### hasTint

          public boolean hasTint()

      Returns:
        true if the ctColor has a tint

    - #### getIndex

          public short getIndex()

      Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
      Specified by:
        `getIndex` in class `ExtendedColor`
      Returns:
        Indexed Color index value, if `ExtendedColor.isIndexed()` is true

    - #### getIndexed

          public short getIndexed()

      Returns:
        Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.

    - #### setIndexed

          public void setIndexed(int indexed)

      Indexed ctColor value. Only used for backwards compatibility. References a ctColor in indexedColors.
      Parameters:
        `indexed` - color index

    - #### getRGB

          public byte[] getRGB()

      Standard Red Green Blue ctColor value (RGB). If there was an A (Alpha) value, it will be stripped.
      Specified by:
        `getRGB` in class `ExtendedColor`
      Returns:
        Standard Red Green Blue ctColor value (RGB) bytes. If there was an A (Alpha) value, it will be stripped.

    - #### getARGB

          public byte[] getARGB()

      Standard Alpha Red Green Blue ctColor value (ARGB).
      Specified by:
        `getARGB` in class `ExtendedColor`
      Returns:
        Standard Alpha Red Green Blue ctColor value (ARGB) bytes.

    - #### getStoredRBG

          protected byte[] getStoredRBG()

      Specified by:
        `getStoredRBG` in class `ExtendedColor`
      Returns:
        RGB or ARGB bytes or null

    - #### getIndexedRGB

          protected byte[] getIndexedRGB()

      Specified by:
        `getIndexedRGB` in class `ExtendedColor`
      Returns:
        index color RGB bytes, if `ExtendedColor.isIndexed()` == true, null if not indexed or index is invalid

    - #### setRGB

          public void setRGB(byte[] rgb)

      Standard Alpha Red Green Blue ctColor value (ARGB).
      Specified by:
        `setRGB` in class `ExtendedColor`
      Parameters:
        `rgb` - bytes

    - #### getTheme

          public int getTheme()

      Index into the collection, referencing a particular or value expressed in the Theme part.
      Specified by:
        `getTheme` in class `ExtendedColor`
      Returns:
        Index of Theme color, if `ExtendedColor.isThemed()` is true

    - #### setTheme

          public void setTheme(int theme)

      Index into the collection, referencing a particular or value expressed in the Theme part.
      Parameters:
        `theme` - index

    - #### getTint

          public double getTint()

      Specifies the tint value applied to the ctColor.

      If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final ctColor applied.

      The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.

      In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where HLSMAX is currently 255.

      Here are some examples of how to apply tint to ctColor:

      >      If (tint < 0)
      >      Lum' = Lum * (1.0 + tint)

      >      For example: Lum = 200; tint = -0.5; Darken 50%
      >      Lum' = 200 * (0.5) => 100
      >      For example: Lum = 200; tint = -1.0; Darken 100% (make black)
      >      Lum' = 200 * (1.0-1.0) => 0
      >      If (tint > 0)
      >      Lum' = Lum * (1.0-tint) + (HLSMAX - HLSMAX * (1.0-tint))
      >      For example: Lum = 100; tint = 0.75; Lighten 75%

      >      Lum' = 100 * (1-.75) + (HLSMAX - HLSMAX*(1-.75))
      >      = 100 * .25 + (255 - 255 * .25)
      >      = 25 + (255 - 63) = 25 + 192 = 217
      >      For example: Lum = 100; tint = 1.0; Lighten 100% (make white)
      >      Lum' = 100 * (1-1) + (HLSMAX - HLSMAX*(1-1))
      >      = 100 * 0 + (255 - 255 * 0)
      >      = 0 + (255 - 0) = 255

      Specified by:
        `getTint` in class `ExtendedColor`
      Returns:
        the tint value

    - #### setTint

          public void setTint(double tint)

      Specifies the tint value applied to the ctColor.

      If tint is supplied, then it is applied to the RGB value of the ctColor to determine the final ctColor applied.

      The tint value is stored as a double from -1.0 .. 1.0, where -1.0 means 100% darken and 1.0 means 100% lighten. Also, 0.0 means no change.

      In loading the RGB value, it is converted to HLS where HLS values are (0..HLSMAX), where HLSMAX is currently 255.

      Here are some examples of how to apply tint to ctColor:

      >      If (tint < 0)
      >      Lum' = Lum * (1.0 + tint)

      >      For example: Lum = 200; tint = -0.5; Darken 50%
      >      Lum' = 200 * (0.5) => 100
      >      For example: Lum = 200; tint = -1.0; Darken 100% (make black)
      >      Lum' = 200 * (1.0-1.0) => 0
      >      If (tint > 0)
      >      Lum' = Lum * (1.0-tint) + (HLSMAX - HLSMAX * (1.0-tint))
      >      For example: Lum = 100; tint = 0.75; Lighten 75%

      >      Lum' = 100 * (1-.75) + (HLSMAX - HLSMAX*(1-.75))
      >      = 100 * .25 + (255 - 255 * .25)
      >      = 25 + (255 - 63) = 25 + 192 = 217
      >      For example: Lum = 100; tint = 1.0; Lighten 100% (make white)
      >      Lum' = 100 * (1-1) + (HLSMAX - HLSMAX*(1-1))
      >      = 100 * 0 + (255 - 255 * 0)
      >      = 0 + (255 - 0) = 255

      Specified by:
        `setTint` in class `ExtendedColor`
      Parameters:
        `tint` - the tint value

    - #### getCTColor

          @Internal
          public org.openxmlformats.schemas.spreadsheetml.x2006.main.CTColor getCTColor()

      Returns the underlying XML bean
      Returns:
        the underlying XML bean

    - #### toXSSFColor

          public static XSSFColor toXSSFColor(Color color)

      Checked type cast `color` to an XSSFColor.
      Parameters:
        `color` - the color to type cast
      Returns:
        the type casted color
      Throws:
        `java.lang.IllegalArgumentException` - if color is null or is not an instance of XSSFColor

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object o)

      Overrides:
        `equals` in class `java.lang.Object`

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