poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kiwiwi...@apache.org
Subject svn commit: r1745101 - in /poi: site/src/documentation/content/xdocs/ trunk/src/java/org/apache/poi/sl/usermodel/ trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/ trunk/src/ooxml/testcases/org/apache/poi/xslf/ trunk/src/ooxml/testcases/org/apache/po...
Date Sun, 22 May 2016 23:58:07 GMT
Author: kiwiwings
Date: Sun May 22 23:58:07 2016
New Revision: 1745101

URL: http://svn.apache.org/viewvc?rev=1745101&view=rev
Log:
#58217 - XSLF: support alpha channel on solid colors (fill, line, text)

Modified:
    poi/site/src/documentation/content/xdocs/status.xml
    poi/trunk/src/java/org/apache/poi/sl/usermodel/PresetColor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFColor.java

Modified: poi/site/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/status.xml?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/status.xml (original)
+++ poi/site/src/documentation/content/xdocs/status.xml Sun May 22 23:58:07 2016
@@ -40,6 +40,8 @@
     </devs>
 
     <release version="3.15-beta2" date="2016-07-??">
+        <action dev="PD" type="add" fixes-bug="58217">XSLF: support alpha channel on
solid colors (fill, line, text)</action>
+        <action dev="PD" type="fix">XSLF: remove creation of empty paragraph in XSLFTextShape.addNewTextParagraph()</action>
         <action dev="PD" type="fix" fixes-bug="59355">XSSFPivotTable::addColumnLabel
sets the cell type of a cell outside of the source data area</action>
         <action dev="PD" type="fix" fixes-bug="54570">InvalidFormatException because
of Absolute URI forbidden</action>
         <action dev="PD" type="fix" fixes-bug="59170">Remove deprecated classes (POI
3.15) - use FormulaError instead of ErrorConstants</action>

Modified: poi/trunk/src/java/org/apache/poi/sl/usermodel/PresetColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/usermodel/PresetColor.java?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/usermodel/PresetColor.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/usermodel/PresetColor.java Sun May 22 23:58:07 2016
@@ -36,58 +36,60 @@ public enum PresetColor {
     // default colors for theme-depending colors taken from ... (last post):
     // https://social.technet.microsoft.com/Forums/windows/en-US/ac76cc56-6ff2-4778-b260-8141d7170a3b/windows-7-highlight-text-color-or-selected-text-color-in-aero
     
+    // see ST_SystemColorVal for system color names
+    
     /** The system-defined color of the active window's border. */
-    ActiveBorder            (0xffb4b4b4,   1, null),
+    ActiveBorder            (0xffb4b4b4,   1, "activeBorder"),
     /** The system-defined color of the background of the active window's title bar. */
-    ActiveCaption           (0xff99b4d1,   2, null),
+    ActiveCaption           (0xff99b4d1,   2, "activeCaption"),
     /** The system-defined color of the text in the active window's title bar. */
-    ActiveCaptionText       (0xff000000,   3, null),
+    ActiveCaptionText       (0xff000000,   3, "captionText"),
     /** The application workspace is the area in a multiple-document view that is not being
occupied by documents. */
-    AppWorkspace            (0xffababab,   4, null),
+    AppWorkspace            (0xffababab,   4, "appWorkspace"),
     /** The system-defined face color of a 3-D element. */
-    Control                 (0xfff0f0f0,   5, null),
+    Control                 (0xfff0f0f0,   5, "btnFace"),
     /** The system-defined shadow color of a 3-D element. The shadow color is applied to
parts of a 3-D element that face away from the light source. */
-    ControlDark             (0xff696969,   6, null),
+    ControlDark             (0xff696969,   6, "btnShadow"),
     /** The system-defined color that is the dark shadow color of a 3-D element. The dark
shadow color is applied to the parts of a 3-D element that are the darkest color. */
-    ControlDarkDark         (0xff000000,   7, null),
+    ControlDarkDark         (0xff000000,   7, "3dDkShadow"),
     /** The system-defined color that is the light color of a 3-D element. The light color
is applied to parts of a 3-D element that face the light source. */
-    ControlLight            (0xffe3e3e3,   8, null),
+    ControlLight            (0xffe3e3e3,   8, "btnHighlight"),
     /** The system-defined highlight color of a 3-D element. The highlight color is applied
to the parts of a 3-D element that are the lightest color. */
-    ControlLightLight       (0xffe3e3e3,   9, null),
+    ControlLightLight       (0xffe3e3e3,   9, "3dLight"),
     /** The system-defined color of text in a 3-D element. */
-    ControlText             (0xff000000,  10, null),
+    ControlText             (0xff000000,  10, "btnText"),
     /** The system-defined color of the desktop. */
-    Desktop                 (0xff000000,  11, null),
+    Desktop                 (0xff000000,  11, "background"),
     /** The system-defined color of dimmed text. Items in a list that are disabled are displayed
in dimmed text. */
-    GrayText                (0xff6d6d6d,  12, null),
+    GrayText                (0xff6d6d6d,  12, "grayText"),
     /** The system-defined color of the background of selected items. This includes selected
menu items as well as selected text. */
-    Highlight               (0xff3399ff,  13, null),
+    Highlight               (0xff3399ff,  13, "highlight"),
     /** The system-defined color of the text of selected items. */
-    HighlightText           (0xffffffff,  14, null),
+    HighlightText           (0xffffffff,  14, "highlightText"),
     /** The system-defined color used to designate a hot-tracked item. Single-clicking a
hot-tracked item executes the item. */
-    HotTrack                (0xff0066cc,  15, null),
+    HotTrack                (0xff0066cc,  15, "hotLight"),
     /** The system-defined color of an inactive window's border. */
-    InactiveBorder          (0xfff4f7fc,  16, null),
+    InactiveBorder          (0xfff4f7fc,  16, "inactiveBorder"),
     /** The system-defined color of the background of an inactive window's title bar. */
-    InactiveCaption         (0xffbfcddb,  17, null),
+    InactiveCaption         (0xffbfcddb,  17, "inactiveCaption"),
     /** The system-defined color of the text in an inactive window's title bar. */
-    InactiveCaptionText     (0xff000000,  18, null),
+    InactiveCaptionText     (0xff000000,  18, "inactiveCaptionText"),
     /** The system-defined color of the background of a ToolTip. */
-    Info                    (0xffffffe1,  19, null),
+    Info                    (0xffffffe1,  19, "infoBk"),
     /** The system-defined color of the text of a ToolTip. */
-    InfoText                (0xff000000,  20, null),
+    InfoText                (0xff000000,  20, "infoText"),
     /** The system-defined color of a menu's background. */
-    Menu                    (0xfff0f0f0,  21, null),
+    Menu                    (0xfff0f0f0,  21, "menu"),
     /** The system-defined color of a menu's text. */
-    MenuText                (0xff000000,  22, null),
+    MenuText                (0xff000000,  22, "menuText"),
     /** The system-defined color of the background of a scroll bar. */
-    ScrollBar               (0xffc8c8c8,  23, null),
+    ScrollBar               (0xffc8c8c8,  23, "scrollBar"),
     /** The system-defined color of the background in the client area of a window. */
-    Window                  (0xffffffff,  24, null),
+    Window                  (0xffffffff,  24, "window"),
     /** The system-defined color of a window frame. */
-    WindowFrame             (0xff646464,  25, null),
+    WindowFrame             (0xff646464,  25, "windowFrame"),
     /** The system-defined color of the text in the client area of a window. */
-    WindowText              (0xff000000,  26, null),
+    WindowText              (0xff000000,  26, "windowText"),
     Transparent             (0x00ffffff,  27, null),
     AliceBlue               (0xfff0f8ff,  28, "aliceBlue"),
     AntiqueWhite            (0xfffaebd7,  29, "antiqueWhite"),
@@ -236,13 +238,13 @@ public enum PresetColor {
     /** The system-defined color that is the shadow color of a 3-D element. This color is
applied to parts of a 3-D element that face away from the light source. */
     ButtonShadow            (0xffa0a0a0, 170, null),
     /** The system-defined color of the lightest color in the color gradient of an active
window's title bar. */
-    GradientActiveCaption   (0xffb9d1ea, 171, null),
+    GradientActiveCaption   (0xffb9d1ea, 171, "gradientActiveCaption"),
     /** The system-defined color of the lightest color in the color gradient of an inactive
window's title bar. */
-    GradientInactiveCaption (0xffd7e4f2, 172, null),
+    GradientInactiveCaption (0xffd7e4f2, 172, "gradientInactiveCaption"),
     /** The system-defined color of the background of a menu bar. */
-    MenuBar                 (0xfff0f0f0, 173, null),
+    MenuBar                 (0xfff0f0f0, 173, "menuBar"),
     /** The system-defined color used to highlight menu items when the menu appears as a
flat menu. */
-    MenuHighlight           (0xff3399ff, 174, null)
+    MenuHighlight           (0xff3399ff, 174, "menuHighlight")
     ;
 
     public Color color;

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java Sun May 22 23:58:07
2016
@@ -25,6 +25,8 @@ import org.apache.poi.sl.usermodel.Color
 import org.apache.poi.sl.usermodel.PresetColor;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
 import org.apache.xmlbeans.XmlObject;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTColor;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTHslColor;
@@ -32,17 +34,18 @@ import org.openxmlformats.schemas.drawin
 import org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTScRgbColor;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTSolidColorFillProperties;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTSystemColor;
 import org.w3c.dom.Node;
 
 /**
  * Encapsulates logic to read color definitions from DrawingML and convert them to java.awt.Color
- *
- * @author Yegor Kozlov
  */
 @Beta
 @Internal
 public class XSLFColor {
+    private static POILogger LOGGER = POILogFactory.getLogger(XSLFColor.class);
+    
     private XmlObject _xmlObject;
     private Color _color;
     private CTSchemeColor _phClr;
@@ -156,10 +159,14 @@ public class XSLFColor {
                     byte[] val = sys.getLastClr();
                     color = new Color(0xFF & val[0], 0xFF & val[1], 0xFF & val[2]);
                 } else {
-                    // YK: color is a string like "menuText" or "windowText", we return black
for such cases
-                    @SuppressWarnings("unused")
                     String colorName = sys.getVal().toString();
-                    color = Color.black;
+                    PresetColor pc = PresetColor.valueOfOoxmlId(colorName);
+                    if (pc != null) {
+                        color = pc.color;
+                    }
+                    if (color == null) {
+                        color = Color.black;
+                    }
                 }
             } else {
                 throw new IllegalArgumentException("Unexpected color choice: " + ch.getClass());
@@ -168,6 +175,60 @@ public class XSLFColor {
         return color;
     }
 
+    /**
+     * Sets the solid color
+     *
+     * @param color solid color
+     */
+    @Internal
+    protected void setColor(Color color) {
+        if (!(_xmlObject instanceof CTSolidColorFillProperties)) {
+            LOGGER.log(POILogger.ERROR, "XSLFColor.setColor currently only supports CTSolidColorFillProperties");
+            return;
+        }
+        CTSolidColorFillProperties fill = (CTSolidColorFillProperties)_xmlObject;
+        if (fill.isSetSrgbClr()) {
+            fill.unsetSrgbClr();
+        }
+        
+        CTSRgbColor rgb = fill.addNewSrgbClr();
+        
+        float[] rgbaf = color.getRGBComponents(null);
+        int r = color.getRed(), g = color.getGreen(), b = color.getBlue();
+        if (rgbaf[0]*255f == r && rgbaf[1]*255f == g && rgbaf[2]*255f ==
b) {
+            rgb.setVal(new byte[]{(byte)r, (byte)g, (byte)b });
+        } else {
+            rgb.addNewRed().setVal((int)(100000 * rgbaf[0]));
+            rgb.addNewGreen().setVal((int)(100000 * rgbaf[1]));
+            rgb.addNewBlue().setVal((int)(100000 * rgbaf[2]));
+        }
+
+        // alpha (%)
+        if (rgbaf.length == 4 && rgbaf[3] < 1f) {
+            rgb.addNewAlpha().setVal((int)(100000 * rgbaf[3]));
+        }
+
+        if (fill.isSetHslClr()) {
+            fill.unsetHslClr();
+        }
+        
+        if (fill.isSetPrstClr()) {
+            fill.unsetPrstClr();
+        }
+        
+        if (fill.isSetSchemeClr()) {
+            fill.unsetSchemeClr();
+        }
+        
+        if (fill.isSetScrgbClr()) {
+            fill.unsetScrgbClr();
+        }
+        
+        if (fill.isSetSysClr()) {
+            fill.unsetSysClr();
+        }
+    }
+    
     private int getRawValue(String elem) {
         String query = "declare namespace a='http://schemas.openxmlformats.org/drawingml/2006/main'
$this//a:" + elem;
 

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java Sun May 22
23:58:07 2016
@@ -59,7 +59,6 @@ import org.openxmlformats.schemas.drawin
 import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetLineDashProperties;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeStyle;
@@ -218,25 +217,31 @@ public abstract class XSLFSimpleShape ex
      */
     public void setLineColor(Color color) {
         CTShapeProperties spPr = getSpPr();
+        CTLineProperties ln = spPr.getLn();
         if (color == null) {
-            if (spPr.isSetLn() && spPr.getLn().isSetSolidFill())
-                spPr.getLn().unsetSolidFill();
+            if (ln == null) {
+                return;
+            }
+            
+            if (ln.isSetSolidFill()) {
+                ln.unsetSolidFill();
+            }
+            
+            if (!ln.isSetNoFill()) {
+                ln.addNewNoFill();
+            }
         } else {
-            CTLineProperties ln = spPr.isSetLn() ? spPr.getLn() : spPr
-                    .addNewLn();
+            if (ln == null) {
+                ln = spPr.addNewLn();
+            }
+            if (ln.isSetNoFill()) {
+                ln.unsetNoFill();
+            }
+            
+            CTSolidColorFillProperties fill = ln.isSetSolidFill() ? ln.getSolidFill() : ln.addNewSolidFill();
 
-            CTSRgbColor rgb = CTSRgbColor.Factory.newInstance();
-            rgb.setVal(new byte[]{(byte) color.getRed(),
-                    (byte) color.getGreen(), (byte) color.getBlue()});
-
-            CTSolidColorFillProperties fill = ln.isSetSolidFill() ? ln
-                    .getSolidFill() : ln.addNewSolidFill();
-            fill.setSrgbClr(rgb);
-            if(fill.isSetHslClr()) fill.unsetHslClr();
-            if(fill.isSetPrstClr()) fill.unsetPrstClr();
-            if(fill.isSetSchemeClr()) fill.unsetSchemeClr();
-            if(fill.isSetScrgbClr()) fill.unsetScrgbClr();
-            if(fill.isSetSysClr()) fill.unsetSysClr();
+            XSLFColor col = new XSLFColor(fill, getSheet().getTheme(), fill.getSchemeClr());
+            col.setColor(color);
         }
     }
 
@@ -548,25 +553,22 @@ public abstract class XSLFSimpleShape ex
     public void setFillColor(Color color) {
         CTShapeProperties spPr = getSpPr();
         if (color == null) {
-            if (spPr.isSetSolidFill()) spPr.unsetSolidFill();
+            if (spPr.isSetSolidFill()) {
+                spPr.unsetSolidFill();
+            }
 
-            if (!spPr.isSetNoFill()) spPr.addNewNoFill();
+            if (!spPr.isSetNoFill()) {
+                spPr.addNewNoFill();
+            }
         } else {
-            if (spPr.isSetNoFill()) spPr.unsetNoFill();
-
-            CTSolidColorFillProperties fill = spPr.isSetSolidFill() ? spPr
-                    .getSolidFill() : spPr.addNewSolidFill();
+            if (spPr.isSetNoFill()) {
+                spPr.unsetNoFill();
+            }
 
-            CTSRgbColor rgb = CTSRgbColor.Factory.newInstance();
-            rgb.setVal(new byte[]{(byte) color.getRed(),
-                    (byte) color.getGreen(), (byte) color.getBlue()});
-
-            fill.setSrgbClr(rgb);
-            if(fill.isSetHslClr()) fill.unsetHslClr();
-            if(fill.isSetPrstClr()) fill.unsetPrstClr();
-            if(fill.isSetSchemeClr()) fill.unsetSchemeClr();
-            if(fill.isSetScrgbClr()) fill.unsetScrgbClr();
-            if(fill.isSetSysClr()) fill.unsetSysClr();
+            CTSolidColorFillProperties fill = spPr.isSetSolidFill() ? spPr.getSolidFill()
: spPr.addNewSolidFill();
+                    
+            XSLFColor col = new XSLFColor(fill, getSheet().getTheme(), fill.getSchemeClr());
+            col.setColor(color);
         }
     }
 

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java Sun May 22 23:58:07
2016
@@ -96,19 +96,13 @@ public class XSLFTextRun implements Text
             throw new IllegalArgumentException("Currently only SolidPaint is supported!");
         }
         SolidPaint sp = (SolidPaint)color;
+        Color c = DrawPaint.applyColorTransform(sp.getSolidColor());
         
         CTTextCharacterProperties rPr = getRPr();
         CTSolidColorFillProperties fill = rPr.isSetSolidFill() ? rPr.getSolidFill() : rPr.addNewSolidFill();
-        CTSRgbColor clr = fill.isSetSrgbClr() ? fill.getSrgbClr() : fill.addNewSrgbClr();
-        Color c = DrawPaint.applyColorTransform(sp.getSolidColor());
-        clr.setVal(new byte[]{(byte)c.getRed(), (byte)c.getGreen(), (byte)c.getBlue()});
-
-        if(fill.isSetHslClr()) fill.unsetHslClr();
-        if(fill.isSetPrstClr()) fill.unsetPrstClr();
-        if(fill.isSetSchemeClr()) fill.unsetSchemeClr();
-        if(fill.isSetScrgbClr()) fill.unsetScrgbClr();
-        if(fill.isSetSysClr()) fill.unsetSysClr();
-
+        
+        XSLFColor col = new XSLFColor(fill, getParentParagraph().getParentShape().getSheet().getTheme(),
fill.getSchemeClr());
+        col.setColor(c);
     }
 
     @Override

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/TestXSLFBugs.java Sun May 22 23:58:07
2016
@@ -16,9 +16,9 @@
 ==================================================================== */
 package org.apache.poi.xslf;
 
-import static junit.framework.TestCase.assertEquals;
 import static org.apache.poi.POITestCase.assertContains;
 import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -40,11 +40,14 @@ import javax.imageio.ImageIO;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.POIXMLDocumentPart.RelationPart;
+import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
 import org.apache.poi.sl.usermodel.PictureData;
 import org.apache.poi.sl.usermodel.PictureData.PictureType;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.xslf.usermodel.DrawingParagraph;
 import org.apache.poi.xslf.usermodel.DrawingTextBody;
 import org.apache.poi.xslf.usermodel.XMLSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFAutoShape;
 import org.apache.poi.xslf.usermodel.XSLFHyperlink;
 import org.apache.poi.xslf.usermodel.XSLFPictureData;
 import org.apache.poi.xslf.usermodel.XSLFPictureShape;
@@ -472,4 +475,28 @@ public class TestXSLFBugs {
     
         ppt2.close();
     }
+
+    @Test
+    public void bug58217() throws IOException {
+        XMLSlideShow ppt1 = new XMLSlideShow();
+        XSLFSlide sl = ppt1.createSlide();
+        XSLFAutoShape as = sl.createAutoShape();
+        as.setShapeType(ShapeType.STAR_10);
+        as.setAnchor(new Rectangle2D.Double(100,100,300,300));
+        as.setFillColor(new Color(1f,1f,0f,0.1f));
+        as.setLineColor(new Color(1f,1f,0f,0.4f));
+        as.setText("Alpha");
+        as.getTextParagraphs().get(0).getTextRuns().get(0).setFontColor(new Color(1f,1f,0f,0.6f));
+        XMLSlideShow ppt2 = XSLFTestDataSamples.writeOutAndReadBack(ppt1);
+        ppt1.close();
+        sl = ppt2.getSlides().get(0);
+        as = (XSLFAutoShape)sl.getShapes().get(0);
+        SolidPaint ps = (SolidPaint)as.getFillStyle().getPaint();
+        assertEquals(10000, ps.getSolidColor().getAlpha());
+        ps = (SolidPaint)as.getStrokeStyle().getPaint();
+        assertEquals(40000, ps.getSolidColor().getAlpha());
+        ps = (SolidPaint)as.getTextParagraphs().get(0).getTextRuns().get(0).getFontColor();
+        assertEquals(60000, ps.getSolidColor().getAlpha());
+        ppt2.close();
+    }
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFColor.java?rev=1745101&r1=1745100&r2=1745101&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFColor.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFColor.java Sun May
22 23:58:07 2016
@@ -17,7 +17,7 @@
 package org.apache.poi.xslf.usermodel;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.awt.Color;
 import java.io.IOException;
@@ -154,9 +154,14 @@ public class TestXSLFColor {
         for(PresetColor pc : PresetColor.values()) {
             if (pc.ooxmlId == null) continue;
             xml = CTColor.Factory.newInstance();
-            STPresetColorVal.Enum val = STPresetColorVal.Enum.forString(pc.ooxmlId);
-            assertNotNull(pc.ooxmlId, val);
-            xml.addNewPrstClr().setVal(val);
+            STPresetColorVal.Enum preVal = STPresetColorVal.Enum.forString(pc.ooxmlId);
+            STSystemColorVal.Enum sysVal = STSystemColorVal.Enum.forString(pc.ooxmlId);
+            assertTrue(pc.ooxmlId, preVal != null || sysVal != null);
+            if (preVal != null) {
+                xml.addNewPrstClr().setVal(preVal);
+            } else {
+                xml.addNewSysClr().setVal(sysVal);
+            }
             color = new XSLFColor(xml, null, null);
             assertEquals(pc.color, color.getColor());
         }
@@ -166,7 +171,7 @@ public class TestXSLFColor {
     public void testSys() {
         CTColor xml = CTColor.Factory.newInstance();
         CTSystemColor sys = xml.addNewSysClr();
-        sys.setVal(STSystemColorVal.GRAY_TEXT);
+        sys.setVal(STSystemColorVal.CAPTION_TEXT);
         XSLFColor color = new XSLFColor(xml, null, null);
         assertEquals(Color.black, color.getColor());
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message