Fix bug 53275: reset indexed color flag when setting a non-indexed color
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1701134 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f7e0bdea37
commit
dab5f4c078
@ -388,6 +388,9 @@ public class XSSFFont implements Font {
|
|||||||
if(color == null) _ctFont.setColorArray(null);
|
if(color == null) _ctFont.setColorArray(null);
|
||||||
else {
|
else {
|
||||||
CTColor ctColor = _ctFont.sizeOfColorArray() == 0 ? _ctFont.addNewColor() : _ctFont.getColorArray(0);
|
CTColor ctColor = _ctFont.sizeOfColorArray() == 0 ? _ctFont.addNewColor() : _ctFont.getColorArray(0);
|
||||||
|
if (ctColor.isSetIndexed()) {
|
||||||
|
ctColor.unsetIndexed();
|
||||||
|
}
|
||||||
ctColor.setRgb(color.getRGB());
|
ctColor.setRgb(color.getRGB());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.usermodel;
|
package org.apache.poi.xssf.usermodel;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.apache.poi.POIXMLException;
|
import org.apache.poi.POIXMLException;
|
||||||
@ -226,15 +228,21 @@ public final class TestXSSFFont extends BaseTestFont{
|
|||||||
ctFont.setColorArray(0,color);
|
ctFont.setColorArray(0,color);
|
||||||
|
|
||||||
XSSFFont xssfFont=new XSSFFont(ctFont);
|
XSSFFont xssfFont=new XSSFFont(ctFont);
|
||||||
assertEquals(ctFont.getColorArray(0).getRgb()[0],xssfFont.getXSSFColor().getRgb()[0]);
|
assertEquals(ctFont.getColorArray(0).getRgb()[0],xssfFont.getXSSFColor().getRGB()[0]);
|
||||||
assertEquals(ctFont.getColorArray(0).getRgb()[1],xssfFont.getXSSFColor().getRgb()[1]);
|
assertEquals(ctFont.getColorArray(0).getRgb()[1],xssfFont.getXSSFColor().getRGB()[1]);
|
||||||
assertEquals(ctFont.getColorArray(0).getRgb()[2],xssfFont.getXSSFColor().getRgb()[2]);
|
assertEquals(ctFont.getColorArray(0).getRgb()[2],xssfFont.getXSSFColor().getRGB()[2]);
|
||||||
assertEquals(ctFont.getColorArray(0).getRgb()[3],xssfFont.getXSSFColor().getRgb()[3]);
|
assertEquals(ctFont.getColorArray(0).getRgb()[3],xssfFont.getXSSFColor().getRGB()[3]);
|
||||||
|
|
||||||
color.setRgb(Integer.toHexString(0xF1F1F1).getBytes());
|
xssfFont.setColor((short)23);
|
||||||
|
|
||||||
|
byte[] bytes = Integer.toHexString(0xF1F1F1).getBytes();
|
||||||
|
color.setRgb(bytes);
|
||||||
XSSFColor newColor=new XSSFColor(color);
|
XSSFColor newColor=new XSSFColor(color);
|
||||||
xssfFont.setColor(newColor);
|
xssfFont.setColor(newColor);
|
||||||
assertEquals(ctFont.getColorArray(0).getRgb()[2],newColor.getRgb()[2]);
|
assertEquals(ctFont.getColorArray(0).getRgb()[2],newColor.getRGB()[2]);
|
||||||
|
|
||||||
|
assertArrayEquals(bytes, xssfFont.getXSSFColor().getRGB());
|
||||||
|
assertEquals(0, xssfFont.getColor());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testThemeColor() {
|
public void testThemeColor() {
|
||||||
|
Loading…
Reference in New Issue
Block a user