Author: abearez
Date: Wed Oct  3 14:32:34 2018
New Revision: 1842728

URL: http://svn.apache.org/viewvc?rev=1842728&view=rev
Log:
XDDF improvements based on StackOverflow examples

Added:
    
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/DisplayBlanks.java
Modified:
    poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java
    
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java
    
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java
    
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java
    
poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java
    
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java
    
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
    
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java
    
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
    
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java

Modified: 
poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java 
(original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java 
Wed Oct  3 14:32:34 2018
@@ -107,10 +107,13 @@ public class BarChartDemo {
         final XDDFNumericalDataSource<? extends Number> valuesData = 
XDDFDataSourcesFactory.fromArray(values1, valuesDataRange, 1);
         values1[6] = 16.0; // if you ever want to change the underlying data
         final XDDFNumericalDataSource<? extends Number> valuesData2 = 
XDDFDataSourcesFactory.fromArray(values2, valuesDataRange2, 2);
-        bar.getSeries().get(0).replaceData(categoriesData, valuesData);
-        bar.addSeries(categoriesData, valuesData2);
-        bar.getSeries().get(0).setTitle(series[0], 
chart.setSheetTitle(series[0], 0));
-        bar.getSeries().get(1).setTitle(series[1], 
chart.setSheetTitle(series[1], 1));
+
+        XDDFChartData.Series series1 = bar.getSeries().get(0);
+        series1.replaceData(categoriesData, valuesData);
+        series1.setTitle(series[0], chart.setSheetTitle(series[0], 0));
+        XDDFChartData.Series series2 = bar.addSeries(categoriesData, 
valuesData2);
+        series2.setTitle(series[1], chart.setSheetTitle(series[1], 1));
+
         chart.plot(bar);
     }
 

Modified: 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java 
(original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java 
Wed Oct  3 14:32:34 2018
@@ -84,8 +84,10 @@ public class BarChart {
             XDDFNumericalDataSource<Double> ys2 = 
XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(2, 2, 
0, NUM_OF_COLUMNS - 1));
 
             XDDFChartData data = chart.createData(ChartTypes.BAR, bottomAxis, 
leftAxis);
-            data.addSeries(xs, ys1);
-            data.addSeries(xs, ys2);
+            XDDFChartData.Series series1 = data.addSeries(xs, ys1);
+            series1.setTitle("2x", null); // 
https://stackoverflow.com/questions/21855842
+            XDDFChartData.Series series2 = data.addSeries(xs, ys2);
+            series2.setTitle("3x", null);
             chart.plot(data);
 
             // in order to transform a bar chart into a column chart, you just 
need to change the bar direction
@@ -106,12 +108,12 @@ public class BarChart {
 
     private static void solidFillSeries(XDDFChartData data, int index, 
PresetColor color) {
         XDDFSolidFillProperties fill = new 
XDDFSolidFillProperties(XDDFColor.from(color));
-        XDDFChartData.Series firstSeries = data.getSeries().get(index);
-        XDDFShapeProperties properties = firstSeries.getShapeProperties();
+        XDDFChartData.Series series = data.getSeries().get(index);
+        XDDFShapeProperties properties = series.getShapeProperties();
         if (properties == null) {
             properties = new XDDFShapeProperties();
         }
         properties.setFillProperties(fill);
-        firstSeries.setShapeProperties(properties);
+        series.setShapeProperties(properties);
     }
 }

Modified: 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java
 (original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java
 Wed Oct  3 14:32:34 2018
@@ -22,15 +22,22 @@ import java.io.IOException;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xddf.usermodel.PresetColor;
+import org.apache.poi.xddf.usermodel.XDDFColor;
+import org.apache.poi.xddf.usermodel.XDDFLineProperties;
+import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
+import org.apache.poi.xddf.usermodel.XDDFSolidFillProperties;
 import org.apache.poi.xddf.usermodel.chart.AxisCrosses;
 import org.apache.poi.xddf.usermodel.chart.AxisPosition;
 import org.apache.poi.xddf.usermodel.chart.ChartTypes;
 import org.apache.poi.xddf.usermodel.chart.LegendPosition;
+import org.apache.poi.xddf.usermodel.chart.MarkerStyle;
 import org.apache.poi.xddf.usermodel.chart.XDDFCategoryAxis;
 import org.apache.poi.xddf.usermodel.chart.XDDFChartData;
 import org.apache.poi.xddf.usermodel.chart.XDDFChartLegend;
 import org.apache.poi.xddf.usermodel.chart.XDDFDataSource;
 import org.apache.poi.xddf.usermodel.chart.XDDFDataSourcesFactory;
+import org.apache.poi.xddf.usermodel.chart.XDDFLineChartData;
 import org.apache.poi.xddf.usermodel.chart.XDDFNumericalDataSource;
 import org.apache.poi.xddf.usermodel.chart.XDDFValueAxis;
 import org.apache.poi.xssf.usermodel.XSSFChart;
@@ -77,15 +84,42 @@ public class LineChart {
             XDDFNumericalDataSource<Double> ys1 = 
XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, 1, 
0, NUM_OF_COLUMNS - 1));
             XDDFNumericalDataSource<Double> ys2 = 
XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(2, 2, 
0, NUM_OF_COLUMNS - 1));
 
-            XDDFChartData data = chart.createData(ChartTypes.LINE, bottomAxis, 
leftAxis);
-            data.addSeries(xs, ys1);
-            data.addSeries(xs, ys2);
+            XDDFLineChartData data = (XDDFLineChartData) 
chart.createData(ChartTypes.LINE, bottomAxis, leftAxis);
+            XDDFLineChartData.Series series1 = (XDDFLineChartData.Series) 
data.addSeries(xs, ys1);
+            series1.setTitle("2x", null); // 
https://stackoverflow.com/questions/21855842
+            series1.setSmooth(false); // 
https://stackoverflow.com/questions/29014848
+            series1.setMarkerStyle(MarkerStyle.STAR); // 
https://stackoverflow.com/questions/39636138
+            XDDFLineChartData.Series series2 = (XDDFLineChartData.Series) 
data.addSeries(xs, ys2);
+            series2.setTitle("3x", null);
+            series2.setSmooth(true);
+            series2.setMarkerSize((short) 6);
+            series2.setMarkerStyle(MarkerStyle.TRIANGLE); // 
https://stackoverflow.com/questions/39636138
             chart.plot(data);
 
+            // if your series have missing values like 
https://stackoverflow.com/questions/29014848
+            // chart.displayBlanksAs(DisplayBlanks.GAP);
+
+            // https://stackoverflow.com/questions/24676460
+            solidLineSeries(data, 0, PresetColor.CHARTREUSE);
+            solidLineSeries(data, 1, PresetColor.TURQUOISE);
+
             // Write the output to a file
             try (FileOutputStream fileOut = new 
FileOutputStream("ooxml-line-chart.xlsx")) {
                 wb.write(fileOut);
             }
         }
     }
+
+    private static void solidLineSeries(XDDFChartData data, int index, 
PresetColor color) {
+        XDDFSolidFillProperties fill = new 
XDDFSolidFillProperties(XDDFColor.from(color));
+        XDDFLineProperties line = new XDDFLineProperties();
+        line.setFillProperties(fill);
+        XDDFChartData.Series series = data.getSeries().get(index);
+        XDDFShapeProperties properties = series.getShapeProperties();
+        if (properties == null) {
+            properties = new XDDFShapeProperties();
+        }
+        properties.setLineProperties(line);
+        series.setShapeProperties(properties);
+    }
 }

Modified: 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java
 (original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java
 Wed Oct  3 14:32:34 2018
@@ -25,6 +25,11 @@ import java.io.IOException;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xddf.usermodel.PresetColor;
+import org.apache.poi.xddf.usermodel.XDDFColor;
+import org.apache.poi.xddf.usermodel.XDDFLineProperties;
+import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
+import org.apache.poi.xddf.usermodel.XDDFSolidFillProperties;
 import org.apache.poi.xddf.usermodel.chart.AxisCrosses;
 import org.apache.poi.xddf.usermodel.chart.AxisPosition;
 import org.apache.poi.xddf.usermodel.chart.ChartTypes;
@@ -34,6 +39,7 @@ import org.apache.poi.xddf.usermodel.cha
 import org.apache.poi.xddf.usermodel.chart.XDDFDataSource;
 import org.apache.poi.xddf.usermodel.chart.XDDFDataSourcesFactory;
 import org.apache.poi.xddf.usermodel.chart.XDDFNumericalDataSource;
+import org.apache.poi.xddf.usermodel.chart.XDDFScatterChartData;
 import org.apache.poi.xddf.usermodel.chart.XDDFValueAxis;
 import org.apache.poi.xssf.usermodel.XSSFChart;
 import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
@@ -79,16 +85,34 @@ public class ScatterChart {
             XDDFNumericalDataSource<Double> ys2 = 
XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(2, 2, 
0, NUM_OF_COLUMNS - 1));
 
 
-            XDDFChartData data = chart.createData(ChartTypes.SCATTER, 
bottomAxis, leftAxis);
-
-            data.addSeries(xs, ys1);
-            data.addSeries(xs, ys2);
+            XDDFScatterChartData data = (XDDFScatterChartData) 
chart.createData(ChartTypes.SCATTER, bottomAxis, leftAxis);
+            XDDFScatterChartData.Series series1 = 
(XDDFScatterChartData.Series) data.addSeries(xs, ys1);
+            series1.setTitle("2x", null); // 
https://stackoverflow.com/questions/21855842
+            series1.setSmooth(false); // 
https://stackoverflow.com/questions/39636138
+            XDDFScatterChartData.Series series2 = 
(XDDFScatterChartData.Series) data.addSeries(xs, ys2);
+            series2.setTitle("3x", null);
             chart.plot(data);
 
+            solidLineSeries(data, 0, PresetColor.CHARTREUSE);
+            solidLineSeries(data, 1, PresetColor.TURQUOISE);
+
             // Write the output to a file
             try (FileOutputStream fileOut = new 
FileOutputStream("ooxml-scatter-chart.xlsx")) {
                 wb.write(fileOut);
             }
         }
     }
+
+    private static void solidLineSeries(XDDFChartData data, int index, 
PresetColor color) {
+        XDDFSolidFillProperties fill = new 
XDDFSolidFillProperties(XDDFColor.from(color));
+        XDDFLineProperties line = new XDDFLineProperties();
+        line.setFillProperties(fill);
+        XDDFChartData.Series series = data.getSeries().get(index);
+        XDDFShapeProperties properties = series.getShapeProperties();
+        if (properties == null) {
+            properties = new XDDFShapeProperties();
+        }
+        properties.setLineProperties(line);
+        series.setShapeProperties(properties);
+    }
 }

Modified: 
poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java
 (original)
+++ 
poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java
 Wed Oct  3 14:32:34 2018
@@ -109,10 +109,13 @@ public class BarChartExample {
         final XDDFNumericalDataSource<? extends Number> valuesData = 
XDDFDataSourcesFactory.fromArray(values1, valuesDataRange, 1);
         values1[6] = 16.0; // if you ever want to change the underlying data
         final XDDFNumericalDataSource<? extends Number> valuesData2 = 
XDDFDataSourcesFactory.fromArray(values2, valuesDataRange2, 2);
-        bar.getSeries().get(0).replaceData(categoriesData, valuesData);
-        bar.addSeries(categoriesData, valuesData2);
-        bar.getSeries().get(0).setTitle(series[0], 
chart.setSheetTitle(series[0], 0));
-        bar.getSeries().get(1).setTitle(series[1], 
chart.setSheetTitle(series[1], 1));
+
+        XDDFChartData.Series series1 = bar.getSeries().get(0);
+        series1.replaceData(categoriesData, valuesData);
+        series1.setTitle(series[0], chart.setSheetTitle(series[0], 0));
+        XDDFChartData.Series series2 = bar.addSeries(categoriesData, 
valuesData2);
+        series2.setTitle(series[1], chart.setSheetTitle(series[1], 1));
+
         chart.plot(bar);
     }
 

Added: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/DisplayBlanks.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/DisplayBlanks.java?rev=1842728&view=auto
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/DisplayBlanks.java 
(added)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/DisplayBlanks.java 
Wed Oct  3 14:32:34 2018
@@ -0,0 +1,45 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xddf.usermodel.chart;
+
+import java.util.HashMap;
+
+import org.openxmlformats.schemas.drawingml.x2006.chart.STDispBlanksAs;
+
+public enum DisplayBlanks {
+    GAP(STDispBlanksAs.GAP),
+    SPAN(STDispBlanksAs.SPAN),
+    ZERO(STDispBlanksAs.ZERO);
+
+    final STDispBlanksAs.Enum underlying;
+
+    DisplayBlanks(STDispBlanksAs.Enum mode) {
+        this.underlying = mode;
+    }
+
+    private final static HashMap<STDispBlanksAs.Enum, DisplayBlanks> reverse = 
new HashMap<>();
+    static {
+        for (DisplayBlanks value : values()) {
+            reverse.put(value.underlying, value);
+        }
+    }
+
+    static DisplayBlanks valueOf(STDispBlanksAs.Enum mode) {
+        return reverse.get(mode);
+    }
+}

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java
 (original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java
 Wed Oct  3 14:32:34 2018
@@ -135,7 +135,11 @@ public class XDDFBarChartData extends XD
 
         @Override
         protected CTSerTx getSeriesText() {
-            return series.getTx();
+            if (series.isSetTx()) {
+                return series.getTx();
+            } else {
+                return series.addNewTx();
+            }
         }
 
         @Override

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java 
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChart.java 
Wed Oct  3 14:32:34 2018
@@ -216,6 +216,24 @@ public abstract class XDDFChart extends
 
     /**
      * @since 4.0.1
+     *
+     */
+    public void displayBlanksAs(DisplayBlanks as) {
+        if (as == null){
+            if (chart.isSetDispBlanksAs()) {
+                chart.unsetDispBlanksAs();
+            }
+        } else {
+            if (chart.isSetDispBlanksAs()) {
+              chart.getDispBlanksAs().setVal(as.underlying);
+            } else {
+                chart.addNewDispBlanksAs().setVal(as.underlying);
+            }
+        }
+    }
+
+    /**
+     * @since 4.0.1
      */
     public Boolean getTitleOverlay() {
         if (chart.isSetTitle()) {

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
 (original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
 Wed Oct  3 14:32:34 2018
@@ -100,7 +100,11 @@ public class XDDFLineChartData extends X
 
         @Override
         protected CTSerTx getSeriesText() {
-            return series.getTx();
+            if (series.isSetTx()) {
+                return series.getTx();
+            } else {
+                return series.addNewTx();
+            }
         }
 
         @Override
@@ -139,7 +143,44 @@ public class XDDFLineChartData extends X
             }
         }
 
+        /**
+         * @since 4.0.1
+         */
+        public Boolean getSmooth() {
+            if (series.isSetSmooth()) {
+                return series.getSmooth().getVal();
+            } else {
+                return null;
+            }
+        }
+
+        /**
+         * @param smooth
+         *        whether or not to smooth lines, if <code>null</code> then 
reverts to default.
+         * @since 4.0.1
+         */
+        public void setSmooth(Boolean smooth) {
+            if (smooth == null) {
+                if (series.isSetSmooth()) {
+                    series.unsetSmooth();
+                }
+            } else {
+                if (series.isSetSmooth()) {
+                    series.getSmooth().setVal(smooth);
+                } else {
+                    series.addNewSmooth().setVal(smooth);
+                }
+            }
+        }
+
+        /**
+         * @param size
+         * <dl><dt>Minimum inclusive:</dt><dd>2</dd><dt>Maximum 
inclusive:</dt><dd>72</dd></dl>
+         */
         public void setMarkerSize(short size) {
+            if (size < 2 || 72 < size) {
+                throw new IllegalArgumentException("Minimum inclusive: 2; 
Maximum inclusive: 72");
+            }
             CTMarker marker = getMarker();
             if (marker.isSetSize()) {
                 marker.getSize().setVal(size);

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java
 (original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java
 Wed Oct  3 14:32:34 2018
@@ -75,7 +75,11 @@ public class XDDFPieChartData extends XD
 
         @Override
         protected CTSerTx getSeriesText() {
-            return series.getTx();
+            if (series.isSetTx()) {
+                return series.getTx();
+            } else {
+                return series.addNewTx();
+            }
         }
 
         @Override

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
 (original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
 Wed Oct  3 14:32:34 2018
@@ -104,7 +104,11 @@ public class XDDFRadarChartData extends
 
         @Override
         protected CTSerTx getSeriesText() {
-            return series.getTx();
+            if (series.isSetTx()) {
+                return series.getTx();
+            } else {
+                return series.addNewTx();
+            }
         }
 
         @Override

Modified: 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java?rev=1842728&r1=1842727&r2=1842728&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java
 (original)
+++ 
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java
 Wed Oct  3 14:32:34 2018
@@ -22,6 +22,7 @@ import java.util.Map;
 import org.apache.poi.util.Beta;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTScatterChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTScatterSer;
@@ -108,7 +109,11 @@ public class XDDFScatterChartData extend
 
         @Override
         protected CTSerTx getSeriesText() {
-            return series.getTx();
+            if (series.isSetTx()) {
+                return series.getTx();
+            } else {
+                return series.addNewTx();
+            }
         }
 
         /**
@@ -123,13 +128,58 @@ public class XDDFScatterChartData extend
         }
 
         /**
+         * @param smooth
+         *        whether or not to smooth lines, if <code>null</code> then 
reverts to default.
          * @since 4.0.1
          */
-        public void setSmooth(boolean smooth) {
-            if (series.isSetSmooth()) {
-                series.getSmooth().setVal(smooth);
+        public void setSmooth(Boolean smooth) {
+            if (smooth == null) {
+                if (series.isSetSmooth()) {
+                    series.unsetSmooth();
+                }
+            } else {
+                if (series.isSetSmooth()) {
+                    series.getSmooth().setVal(smooth);
+                } else {
+                    series.addNewSmooth().setVal(smooth);
+                }
+            }
+        }
+
+        /**
+         * @param size
+         * <dl><dt>Minimum inclusive:</dt><dd>2</dd><dt>Maximum 
inclusive:</dt><dd>72</dd></dl>
+         * @since 4.0.1
+         */
+        public void setMarkerSize(short size) {
+            if (size < 2 || 72 < size) {
+                throw new IllegalArgumentException("Minimum inclusive: 2; 
Maximum inclusive: 72");
+            }
+            CTMarker marker = getMarker();
+            if (marker.isSetSize()) {
+                marker.getSize().setVal(size);
+            } else {
+                marker.addNewSize().setVal(size);
+            }
+        }
+
+        /**
+         * @since 4.0.1
+         */
+        public void setMarkerStyle(MarkerStyle style) {
+            CTMarker marker = getMarker();
+            if (marker.isSetSymbol()) {
+                marker.getSymbol().setVal(style.underlying);
+            } else {
+                marker.addNewSymbol().setVal(style.underlying);
+            }
+        }
+
+        private CTMarker getMarker() {
+            if (series.isSetMarker()) {
+                return series.getMarker();
             } else {
-                series.addNewSmooth().setVal(smooth);
+                return series.addNewMarker();
             }
         }
 



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

Reply via email to