You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ab...@apache.org on 2019/05/21 00:13:28 UTC

svn commit: r1859589 - in /poi/trunk/src: examples/src/org/apache/poi/xssf/usermodel/examples/ ooxml/java/org/apache/poi/xddf/usermodel/chart/

Author: abearez
Date: Tue May 21 00:13:28 2019
New Revision: 1859589

URL: http://svn.apache.org/viewvc?rev=1859589&view=rev
Log:
Added more chart supports.
fixed bug while creating chart with bar and line series.

Added:
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java
      - copied, changed from r1859575, poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFView3D.java
Modified:
    poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarAndLineChart.java
    poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/ChartTypes.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/XDDFChartData.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/xssf/usermodel/examples/BarAndLineChart.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarAndLineChart.java?rev=1859589&r1=1859588&r2=1859589&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarAndLineChart.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarAndLineChart.java Tue May 21 00:13:28 2019
@@ -134,17 +134,26 @@ public class BarAndLineChart {
             lineCategories.crossAxis(rightValues);
 
             // the bar chart
-            XDDFBarChartData bar = (XDDFBarChartData) chart.createData(ChartTypes.BAR, lineCategories, rightValues);
+            XDDFBarChartData bar = (XDDFBarChartData) chart.createData(ChartTypes.BAR, barCategories, leftValues);
             XDDFBarChartData.Series series1 = (XDDFBarChartData.Series) bar.addSeries(xs, ys1);
             series1.setTitle("Bars", new CellReference("Sheet1!$B$1"));
             bar.setVaryColors(true);
             bar.setBarDirection(BarDirection.COL);
             chart.plot(bar);
 
-            // the line chart
+            // the line chart on secondary axis
             XDDFLineChartData lines = (XDDFLineChartData) chart.createData(ChartTypes.LINE, lineCategories,
                     rightValues);
+            
+            //uncomment below line if only primary axis required and comment above line 
+            // the line chart on primary axis
+            /*XDDFLineChartData lines = (XDDFLineChartData) chart.createData(ChartTypes.LINE, lineCategories,
+                    leftValues);*/
+            
+            
             XDDFLineChartData.Series series2 = (XDDFLineChartData.Series) lines.addSeries(xs, ys2);
+            series2.updateIdXVal(1);
+            series2.updateOrderVal(1);
             series2.setTitle("Lines", new CellReference("Sheet1!$C$1"));
             lines.setVaryColors(true);
             chart.plot(lines);

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/ChartTypes.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/ChartTypes.java?rev=1859589&r1=1859588&r2=1859589&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/ChartTypes.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/ChartTypes.java Tue May 21 00:13:28 2019
@@ -17,9 +17,16 @@
 package org.apache.poi.xddf.usermodel.chart;
 
 public enum ChartTypes {
+    AREA,
+    AREA3D,
     BAR,
+    BAR3D,
     LINE,
+    LINE3D,
     PIE,
+    PIE3D,
     RADAR,
-    SCATTER
+    SCATTER,
+    SURFACE,
+    SURFACE3D
 }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java (from r1859575, 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/XDDFArea3DChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFArea3DChartData.java Tue May 21 00:13:28 2019
@@ -21,21 +21,20 @@ import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTArea3DChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTAreaSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarChart;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarSer;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarStyle;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
 @Beta
-public class XDDFRadarChartData extends XDDFChartData {
-    private CTRadarChart chart;
+public class XDDFArea3DChartData extends XDDFChartData {
+    private CTArea3DChart chart;
 
-    public XDDFRadarChartData(CTRadarChart chart, Map<Long, XDDFChartAxis> categories,
+    public XDDFArea3DChartData(CTArea3DChart chart, Map<Long, XDDFChartAxis> categories,
             Map<Long, XDDFValueAxis> values) {
         this.chart = chart;
-        for (CTRadarSer series : chart.getSerList()) {
+        for (CTAreaSer series : chart.getSerList()) {
             this.series.add(new Series(series, series.getCat(), series.getVal()));
         }
         defineAxes(categories, values);
@@ -62,23 +61,23 @@ public class XDDFRadarChartData extends
         }
     }
 
-    public RadarStyle getStyle() {
-        return RadarStyle.valueOf(chart.getRadarStyle().getVal());
+    public Grouping getGrouping() {
+        return Grouping.valueOf(chart.getGrouping().getVal());
     }
 
-    public void setStyle(RadarStyle style) {
-        CTRadarStyle radarStyle = chart.getRadarStyle();
-        if (radarStyle == null) {
-            radarStyle = chart.addNewRadarStyle();
-        }
-        radarStyle.setVal(style.underlying);
-    }
+   public void setGrouping(Grouping grouping) {
+      if (chart.getGrouping() != null) {
+         chart.getGrouping().setVal(grouping.underlying);
+      } else {
+         chart.addNewGrouping().setVal(grouping.underlying);
+      }
+   }
 
     @Override
     public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
             XDDFNumericalDataSource<? extends Number> values) {
         final int index = this.series.size();
-        final CTRadarSer ctSer = this.chart.addNewSer();
+        final CTAreaSer ctSer = this.chart.addNewSer();
         ctSer.addNewCat();
         ctSer.addNewVal();
         ctSer.addNewIdx().setVal(index);
@@ -89,15 +88,15 @@ public class XDDFRadarChartData extends
     }
 
     public class Series extends XDDFChartData.Series {
-        private CTRadarSer series;
+        private CTAreaSer series;
 
-        protected Series(CTRadarSer series, XDDFDataSource<?> category,
+        protected Series(CTAreaSer series, XDDFDataSource<?> category,
                 XDDFNumericalDataSource<? extends Number> values) {
             super(category, values);
             this.series = series;
         }
 
-        protected Series(CTRadarSer series, CTAxDataSource category, CTNumDataSource values) {
+        protected Series(CTAreaSer series, CTAxDataSource category, CTNumDataSource values) {
             super(XDDFDataSourcesFactory.fromDataSource(category), XDDFDataSourcesFactory.fromDataSource(values));
             this.series = series;
         }
@@ -156,5 +155,15 @@ public class XDDFRadarChartData extends
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java (from r1859575, 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/XDDFAreaChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFAreaChartData.java Tue May 21 00:13:28 2019
@@ -21,21 +21,23 @@ import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTAreaChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTAreaSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTLineChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTLineSer;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarChart;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarSer;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarStyle;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
 @Beta
-public class XDDFRadarChartData extends XDDFChartData {
-    private CTRadarChart chart;
+public class XDDFAreaChartData extends XDDFChartData {
+    private CTAreaChart chart;
 
-    public XDDFRadarChartData(CTRadarChart chart, Map<Long, XDDFChartAxis> categories,
+    public XDDFAreaChartData(CTAreaChart chart, Map<Long, XDDFChartAxis> categories,
             Map<Long, XDDFValueAxis> values) {
         this.chart = chart;
-        for (CTRadarSer series : chart.getSerList()) {
+        for (CTAreaSer series : chart.getSerList()) {
             this.series.add(new Series(series, series.getCat(), series.getVal()));
         }
         defineAxes(categories, values);
@@ -62,23 +64,23 @@ public class XDDFRadarChartData extends
         }
     }
 
-    public RadarStyle getStyle() {
-        return RadarStyle.valueOf(chart.getRadarStyle().getVal());
+    public Grouping getGrouping() {
+        return Grouping.valueOf(chart.getGrouping().getVal());
     }
 
-    public void setStyle(RadarStyle style) {
-        CTRadarStyle radarStyle = chart.getRadarStyle();
-        if (radarStyle == null) {
-            radarStyle = chart.addNewRadarStyle();
-        }
-        radarStyle.setVal(style.underlying);
-    }
+   public void setGrouping(Grouping grouping) {
+      if (chart.getGrouping() != null) {
+         chart.getGrouping().setVal(grouping.underlying);
+      } else {
+         chart.addNewGrouping().setVal(grouping.underlying);
+      }
+   }
 
     @Override
     public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
             XDDFNumericalDataSource<? extends Number> values) {
         final int index = this.series.size();
-        final CTRadarSer ctSer = this.chart.addNewSer();
+        final CTAreaSer ctSer = this.chart.addNewSer();
         ctSer.addNewCat();
         ctSer.addNewVal();
         ctSer.addNewIdx().setVal(index);
@@ -89,15 +91,15 @@ public class XDDFRadarChartData extends
     }
 
     public class Series extends XDDFChartData.Series {
-        private CTRadarSer series;
+        private CTAreaSer series;
 
-        protected Series(CTRadarSer series, XDDFDataSource<?> category,
+        protected Series(CTAreaSer series, XDDFDataSource<?> category,
                 XDDFNumericalDataSource<? extends Number> values) {
             super(category, values);
             this.series = series;
         }
 
-        protected Series(CTRadarSer series, CTAxDataSource category, CTNumDataSource values) {
+        protected Series(CTAreaSer series, CTAxDataSource category, CTNumDataSource values) {
             super(XDDFDataSourcesFactory.fromDataSource(category), XDDFDataSourcesFactory.fromDataSource(values));
             this.series = series;
         }
@@ -156,5 +158,15 @@ public class XDDFRadarChartData extends
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java (from r1859575, 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/XDDFBar3DChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFBar3DChartData.java Tue May 21 00:13:28 2019
@@ -22,16 +22,16 @@ 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.CTBarChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTBar3DChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTBarSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
 @Beta
-public class XDDFBarChartData extends XDDFChartData {
-    private CTBarChart chart;
+public class XDDFBar3DChartData extends XDDFChartData {
+    private CTBar3DChart chart;
 
-    public XDDFBarChartData(CTBarChart chart, Map<Long, XDDFChartAxis> categories,
+    public XDDFBar3DChartData(CTBar3DChart chart, Map<Long, XDDFChartAxis> categories,
             Map<Long, XDDFValueAxis> values) {
         this.chart = chart;
         if (chart.getBarDir() == null) {
@@ -187,5 +187,15 @@ public class XDDFBarChartData extends XD
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

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=1859589&r1=1859588&r2=1859589&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 Tue May 21 00:13:28 2019
@@ -187,5 +187,15 @@ public class XDDFBarChartData extends XD
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+      @Override
+      public void updateOrderVal(long val) {
+         series.getOrder().setVal(val);
+      }
     }
 }

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=1859589&r1=1859588&r2=1859589&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 Tue May 21 00:13:28 2019
@@ -72,6 +72,7 @@ import org.openxmlformats.schemas.drawin
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurface;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTTitle;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTValAx;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTView3D;
 import org.openxmlformats.schemas.drawingml.x2006.chart.ChartSpaceDocument;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;
@@ -301,6 +302,21 @@ public abstract class XDDFChart extends
         }
     }
 
+   /**
+    * Get or Add chart 3D view into chart
+    *
+    * @return this method will add 3D view
+    */
+   public XDDFView3D getOrAddView3D() {
+      CTView3D view3D;
+      if (chart.isSetView3D()) {
+         view3D = chart.getView3D();
+      } else {
+         view3D = chart.addNewView3D();
+      }
+      return new XDDFView3D(view3D);
+   }
+
     /**
      * Get the chart title body if there is one, i.e. title is set and is not a
      * formula.
@@ -436,6 +452,23 @@ public abstract class XDDFChart extends
         return valueAxis;
     }
 
+    /**
+     * this method will return series axis with specified position 
+     *
+     * @param pos axis position Left, Right, Top, Bottom
+     * @return series axis with specified position
+     */
+    public XDDFSeriesAxis createSeriesAxis(AxisPosition pos) {
+        XDDFSeriesAxis seriesAxis = new XDDFSeriesAxis(chart.getPlotArea(), pos);
+        if (axes.size() == 1) {
+            XDDFChartAxis axis = axes.get(0);
+            axis.crossAxis(seriesAxis);
+            seriesAxis.crossAxis(axis);
+        }
+        axes.add(seriesAxis);
+        return seriesAxis;
+    }
+
     public XDDFCategoryAxis createCategoryAxis(AxisPosition pos) {
         XDDFCategoryAxis categoryAxis = new XDDFCategoryAxis(chart.getPlotArea(), pos);
         if (axes.size() == 1) {
@@ -458,21 +491,50 @@ public abstract class XDDFChart extends
         return dateAxis;
     }
 
+    /**
+     * this method will return specified chart data with category and series values
+     *
+     * @param type chart type
+     * @param category category values of chart
+     * @param values series values of chart
+     * @return specified chart data.
+     */
     public XDDFChartData createData(ChartTypes type, XDDFChartAxis category, XDDFValueAxis values) {
-        Map<Long, XDDFChartAxis> categories = Collections.singletonMap(category.getId(), category);
-        Map<Long, XDDFValueAxis> mapValues = Collections.singletonMap(values.getId(), values);
+        Map<Long, XDDFChartAxis> categories = null;
+        Map<Long, XDDFValueAxis> mapValues = null;
+        
+        if(ChartTypes.PIE != type && ChartTypes.PIE3D != type)
+        {
+            categories = Collections.singletonMap(category.getId(), category);
+            mapValues = Collections.singletonMap(values.getId(), values);
+        }
+        
         final CTPlotArea plotArea = getCTPlotArea();
         switch (type) {
+        case AREA:
+            return new XDDFAreaChartData(plotArea.addNewAreaChart(), categories, mapValues);
+        case AREA3D:
+            return new XDDFArea3DChartData(plotArea.addNewArea3DChart(), categories, mapValues);
         case BAR:
             return new XDDFBarChartData(plotArea.addNewBarChart(), categories, mapValues);
+        case BAR3D:
+            return new XDDFBar3DChartData(plotArea.addNewBar3DChart(), categories, mapValues);
         case LINE:
             return new XDDFLineChartData(plotArea.addNewLineChart(), categories, mapValues);
+        case LINE3D:
+            return new XDDFLine3DChartData(plotArea.addNewLine3DChart(), categories, mapValues);
         case PIE:
             return new XDDFPieChartData(plotArea.addNewPieChart());
+        case PIE3D:
+            return new XDDFPie3DChartData(plotArea.addNewPie3DChart());
         case RADAR:
             return new XDDFRadarChartData(plotArea.addNewRadarChart(), categories, mapValues);
         case SCATTER:
             return new XDDFScatterChartData(plotArea.addNewScatterChart(), categories, mapValues);
+        case SURFACE:
+            return new XDDFSurfaceChartData(plotArea.addNewSurfaceChart(), categories, mapValues);
+        case SURFACE3D:
+            return new XDDFSurface3DChartData(plotArea.addNewSurface3DChart(), categories, mapValues);
         default:
             return null;
         }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java?rev=1859589&r1=1859588&r2=1859589&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java Tue May 21 00:13:28 2019
@@ -98,6 +98,20 @@ public abstract class XDDFChartData {
 
         protected abstract CTNumDataSource getNumDS();
 
+      /**
+       * This method will update series id value
+       *
+       * @param val
+       */
+      public abstract void updateIdXVal(long val);
+
+      /**
+       * this method will update series order value
+       *
+       * @param val
+       */
+      public abstract void updateOrderVal(long val);
+
         protected Series(XDDFDataSource<?> category, XDDFNumericalDataSource<? extends Number> values) {
             replaceData(category, values);
         }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java (from r1859575, 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/XDDFLine3DChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFLine3DChartData.java Tue May 21 00:13:28 2019
@@ -22,17 +22,17 @@ 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.CTLineChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTLine3DChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTLineSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
 @Beta
-public class XDDFLineChartData extends XDDFChartData {
-    private CTLineChart chart;
+public class XDDFLine3DChartData extends XDDFChartData {
+    private CTLine3DChart chart;
 
-    public XDDFLineChartData(CTLineChart chart, Map<Long, XDDFChartAxis> categories,
+    public XDDFLine3DChartData(CTLine3DChart chart, Map<Long, XDDFChartAxis> categories,
             Map<Long, XDDFValueAxis> values) {
         this.chart = chart;
         for (CTLineSer series : chart.getSerList()) {
@@ -66,9 +66,13 @@ public class XDDFLineChartData extends X
         return Grouping.valueOf(chart.getGrouping().getVal());
     }
 
-    public void setGrouping(Grouping grouping) {
-        chart.getGrouping().setVal(grouping.underlying);
-    }
+   public void setGrouping(Grouping grouping) {
+      if (chart.getGrouping() != null) {
+         chart.getGrouping().setVal(grouping.underlying);
+      } else {
+         chart.addNewGrouping().setVal(grouping.underlying);
+      }
+   }
 
     @Override
     public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
@@ -143,9 +147,7 @@ public class XDDFLineChartData extends X
             }
         }
 
-        /**
-         * @since 4.0.1
-         */
+
         public Boolean getSmooth() {
             if (series.isSetSmooth()) {
                 return series.getSmooth().getVal();
@@ -157,7 +159,7 @@ public class XDDFLineChartData extends X
         /**
          * @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) {
@@ -215,5 +217,15 @@ public class XDDFLineChartData extends X
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

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=1859589&r1=1859588&r2=1859589&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 Tue May 21 00:13:28 2019
@@ -66,9 +66,13 @@ public class XDDFLineChartData extends X
         return Grouping.valueOf(chart.getGrouping().getVal());
     }
 
-    public void setGrouping(Grouping grouping) {
-        chart.getGrouping().setVal(grouping.underlying);
-    }
+   public void setGrouping(Grouping grouping) {
+      if (chart.getGrouping() != null) {
+         chart.getGrouping().setVal(grouping.underlying);
+      } else {
+         chart.addNewGrouping().setVal(grouping.underlying);
+      }
+   }
 
     @Override
     public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
@@ -215,5 +219,15 @@ public class XDDFLineChartData extends X
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java (from r1859575, 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/XDDFPie3DChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFPie3DChartData.java Tue May 21 00:13:28 2019
@@ -21,15 +21,15 @@ 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.CTNumDataSource;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTPie3DChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
 @Beta
-public class XDDFPieChartData extends XDDFChartData {
-    private CTPieChart chart;
+public class XDDFPie3DChartData extends XDDFChartData {
+    private CTPie3DChart chart;
 
-    public XDDFPieChartData(CTPieChart chart) {
+    public XDDFPie3DChartData(CTPie3DChart chart) {
         this.chart = chart;
         for (CTPieSer series : chart.getSerList()) {
             this.series.add(new Series(series, series.getCat(), series.getVal()));
@@ -143,5 +143,15 @@ public class XDDFPieChartData extends XD
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

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=1859589&r1=1859588&r2=1859589&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 Tue May 21 00:13:28 2019
@@ -143,5 +143,15 @@ public class XDDFPieChartData extends XD
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

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=1859589&r1=1859588&r2=1859589&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 Tue May 21 00:13:28 2019
@@ -156,5 +156,15 @@ public class XDDFRadarChartData extends
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+      @Override
+      public void updateOrderVal(long val) {
+         series.getOrder().setVal(val);
+      }
     }
 }

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=1859589&r1=1859588&r2=1859589&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 Tue May 21 00:13:28 2019
@@ -228,5 +228,15 @@ public class XDDFScatterChartData extend
         protected CTNumDataSource getNumDS() {
             return series.getYVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+      @Override
+      public void updateOrderVal(long val) {
+         series.getOrder().setVal(val);
+      }
     }
 }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java (from r1859575, 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/XDDFSurface3DChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFSurface3DChartData.java Tue May 21 00:13:28 2019
@@ -22,20 +22,20 @@ 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.CTBoolean;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarChart;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarSer;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarStyle;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurface3DChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurfaceSer;
 
 @Beta
-public class XDDFRadarChartData extends XDDFChartData {
-    private CTRadarChart chart;
+public class XDDFSurface3DChartData extends XDDFChartData {
+    private CTSurface3DChart chart;
 
-    public XDDFRadarChartData(CTRadarChart chart, Map<Long, XDDFChartAxis> categories,
+    public XDDFSurface3DChartData(CTSurface3DChart chart, Map<Long, XDDFChartAxis> categories,
             Map<Long, XDDFValueAxis> values) {
         this.chart = chart;
-        for (CTRadarSer series : chart.getSerList()) {
+        for (CTSurfaceSer series : chart.getSerList()) {
             this.series.add(new Series(series, series.getCat(), series.getVal()));
         }
         defineAxes(categories, values);
@@ -52,33 +52,40 @@ public class XDDFRadarChartData extends
         }
         defineAxes(chart.getAxIdArray(), categories, values);
     }
-
+    
+    public void setSeriesAxisId(XDDFSeriesAxis seriesAxis) {
+            chart.addNewAxId().setVal(seriesAxis.getId());
+    }
+    
+    public CTBoolean getWireframe() {
+       if (chart.isSetWireframe()) {
+           return chart.getWireframe();
+       } else {
+           return chart.addNewWireframe();
+       }
+   }
+
+   public void setWireframe(boolean val) {
+       if (chart.isSetWireframe()) {
+           chart.getWireframe().setVal(val);
+       } else {
+           chart.addNewWireframe().setVal(val);
+       }
+   }
+
+    /**
+     * Surface chart is not supporting vary color property
+     */
     @Override
     public void setVaryColors(boolean varyColors) {
-        if (chart.isSetVaryColors()) {
-            chart.getVaryColors().setVal(varyColors);
-        } else {
-            chart.addNewVaryColors().setVal(varyColors);
-        }
-    }
-
-    public RadarStyle getStyle() {
-        return RadarStyle.valueOf(chart.getRadarStyle().getVal());
-    }
-
-    public void setStyle(RadarStyle style) {
-        CTRadarStyle radarStyle = chart.getRadarStyle();
-        if (radarStyle == null) {
-            radarStyle = chart.addNewRadarStyle();
-        }
-        radarStyle.setVal(style.underlying);
+       
     }
 
     @Override
     public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
             XDDFNumericalDataSource<? extends Number> values) {
         final int index = this.series.size();
-        final CTRadarSer ctSer = this.chart.addNewSer();
+        final CTSurfaceSer ctSer = this.chart.addNewSer();
         ctSer.addNewCat();
         ctSer.addNewVal();
         ctSer.addNewIdx().setVal(index);
@@ -89,15 +96,15 @@ public class XDDFRadarChartData extends
     }
 
     public class Series extends XDDFChartData.Series {
-        private CTRadarSer series;
+        private CTSurfaceSer series;
 
-        protected Series(CTRadarSer series, XDDFDataSource<?> category,
+        protected Series(CTSurfaceSer series, XDDFDataSource<?> category,
                 XDDFNumericalDataSource<? extends Number> values) {
             super(category, values);
             this.series = series;
         }
 
-        protected Series(CTRadarSer series, CTAxDataSource category, CTNumDataSource values) {
+        protected Series(CTSurfaceSer series, CTAxDataSource category, CTNumDataSource values) {
             super(XDDFDataSourcesFactory.fromDataSource(category), XDDFDataSourcesFactory.fromDataSource(values));
             this.series = series;
         }
@@ -111,17 +118,13 @@ public class XDDFRadarChartData extends
             }
         }
 
-        @Override
-        public void setShowLeaderLines(boolean showLeaderLines) {
-            if (!series.isSetDLbls()) {
-                series.addNewDLbls();
-            }
-            if (series.getDLbls().isSetShowLeaderLines()) {
-                series.getDLbls().getShowLeaderLines().setVal(showLeaderLines);
-            } else {
-                series.getDLbls().addNewShowLeaderLines().setVal(showLeaderLines);
-            }
-        }
+      /**
+       * Surface chart is not supporting vary show leader lines property
+       */
+      @Override
+      public void setShowLeaderLines(boolean showLeaderLines) {
+
+      }
 
         @Override
         public XDDFShapeProperties getShapeProperties() {
@@ -156,5 +159,15 @@ public class XDDFRadarChartData extends
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
 }

Copied: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java (from r1859575, 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/XDDFSurfaceChartData.java?p2=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java&p1=poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java&r1=1859575&r2=1859589&rev=1859589&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/XDDFSurfaceChartData.java Tue May 21 00:13:28 2019
@@ -22,25 +22,24 @@ 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.CTBoolean;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarChart;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarSer;
-import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarStyle;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurfaceChart;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurfaceSer;
 
 @Beta
-public class XDDFRadarChartData extends XDDFChartData {
-    private CTRadarChart chart;
+public class XDDFSurfaceChartData extends XDDFChartData {
+    private CTSurfaceChart chart;
 
-    public XDDFRadarChartData(CTRadarChart chart, Map<Long, XDDFChartAxis> categories,
+    public XDDFSurfaceChartData(CTSurfaceChart chart, Map<Long, XDDFChartAxis> categories,
             Map<Long, XDDFValueAxis> values) {
         this.chart = chart;
-        for (CTRadarSer series : chart.getSerList()) {
+        for (CTSurfaceSer series : chart.getSerList()) {
             this.series.add(new Series(series, series.getCat(), series.getVal()));
         }
         defineAxes(categories, values);
     }
-
     private void defineAxes(Map<Long, XDDFChartAxis> categories, Map<Long, XDDFValueAxis> values) {
         if (chart.sizeOfAxIdArray() == 0) {
             for (Long id : categories.keySet()) {
@@ -53,32 +52,39 @@ public class XDDFRadarChartData extends
         defineAxes(chart.getAxIdArray(), categories, values);
     }
 
+    public void setSeriesAxisId(XDDFSeriesAxis seriesAxis) {
+            chart.addNewAxId().setVal(seriesAxis.getId());
+    }
+    
+    public CTBoolean getWireframe() {
+       if (chart.isSetWireframe()) {
+           return chart.getWireframe();
+       } else {
+           return chart.addNewWireframe();
+       }
+   }
+
+   public void setWireframe(boolean val) {
+       if (chart.isSetWireframe()) {
+           chart.getWireframe().setVal(val);
+       } else {
+           chart.addNewWireframe().setVal(val);
+       }
+   }
+
+    /**
+     * Surface chart is not supporting vary color property
+     */
     @Override
     public void setVaryColors(boolean varyColors) {
-        if (chart.isSetVaryColors()) {
-            chart.getVaryColors().setVal(varyColors);
-        } else {
-            chart.addNewVaryColors().setVal(varyColors);
-        }
-    }
-
-    public RadarStyle getStyle() {
-        return RadarStyle.valueOf(chart.getRadarStyle().getVal());
-    }
-
-    public void setStyle(RadarStyle style) {
-        CTRadarStyle radarStyle = chart.getRadarStyle();
-        if (radarStyle == null) {
-            radarStyle = chart.addNewRadarStyle();
-        }
-        radarStyle.setVal(style.underlying);
+        
     }
 
     @Override
     public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
             XDDFNumericalDataSource<? extends Number> values) {
         final int index = this.series.size();
-        final CTRadarSer ctSer = this.chart.addNewSer();
+        final CTSurfaceSer ctSer = this.chart.addNewSer();
         ctSer.addNewCat();
         ctSer.addNewVal();
         ctSer.addNewIdx().setVal(index);
@@ -89,15 +95,15 @@ public class XDDFRadarChartData extends
     }
 
     public class Series extends XDDFChartData.Series {
-        private CTRadarSer series;
+        private CTSurfaceSer series;
 
-        protected Series(CTRadarSer series, XDDFDataSource<?> category,
+        protected Series(CTSurfaceSer series, XDDFDataSource<?> category,
                 XDDFNumericalDataSource<? extends Number> values) {
             super(category, values);
             this.series = series;
         }
 
-        protected Series(CTRadarSer series, CTAxDataSource category, CTNumDataSource values) {
+        protected Series(CTSurfaceSer series, CTAxDataSource category, CTNumDataSource values) {
             super(XDDFDataSourcesFactory.fromDataSource(category), XDDFDataSourcesFactory.fromDataSource(values));
             this.series = series;
         }
@@ -111,17 +117,13 @@ public class XDDFRadarChartData extends
             }
         }
 
-        @Override
-        public void setShowLeaderLines(boolean showLeaderLines) {
-            if (!series.isSetDLbls()) {
-                series.addNewDLbls();
-            }
-            if (series.getDLbls().isSetShowLeaderLines()) {
-                series.getDLbls().getShowLeaderLines().setVal(showLeaderLines);
-            } else {
-                series.getDLbls().addNewShowLeaderLines().setVal(showLeaderLines);
-            }
-        }
+      /**
+       * Surface chart is not supporting vary show leader lines property
+       */
+      @Override
+      public void setShowLeaderLines(boolean showLeaderLines) {
+
+      }
 
         @Override
         public XDDFShapeProperties getShapeProperties() {
@@ -156,5 +158,15 @@ public class XDDFRadarChartData extends
         protected CTNumDataSource getNumDS() {
             return series.getVal();
         }
+        
+        @Override
+        public void updateIdXVal(long val) {
+            series.getIdx().setVal(val);
+        }
+        
+        @Override
+        public void updateOrderVal(long val) {
+            series.getOrder().setVal(val);
+        }
     }
-}
+}
\ No newline at end of file

Added: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFView3D.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFView3D.java?rev=1859589&view=auto
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFView3D.java (added)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFView3D.java Tue May 21 00:13:28 2019
@@ -0,0 +1,103 @@
+/*
+ *  ====================================================================
+ *    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 org.openxmlformats.schemas.drawingml.x2006.chart.CTView3D;
+
+
+public class XDDFView3D {
+    private final CTView3D view3D;
+
+    public XDDFView3D(CTView3D view3D) {
+        this.view3D = view3D;
+    }
+    
+    public int getXRotationAngle() {
+        return view3D.getRotX().getVal();
+    }
+    
+   public void setXRotationAngle(int val) {
+      if (view3D.isSetRotY()) {
+         view3D.getRotY().setVal(val);
+      } else {
+         view3D.addNewRotY().setVal(val);
+      }
+   }
+    
+    public int getYRotationAngle() {
+        return view3D.getRotY().getVal();
+    }
+    
+   public void setYRotationAngle(int val) {
+      if (view3D.isSetRotY()) {
+         view3D.getRotY().setVal(val);
+      } else {
+         view3D.addNewRotY().setVal(val);
+      }
+   }
+    
+    public boolean getRightAngleAxes() {
+        return view3D.getRAngAx().getVal();
+    }
+    
+   public void setRightAngleAxes(boolean val) {
+      if (view3D.isSetRAngAx()) {
+         view3D.getRAngAx().setVal(val);
+      } else {
+         view3D.addNewRAngAx().setVal(val);
+      }
+   }
+    
+    public short getPerspectiveAngle() {
+        return view3D.getPerspective().getVal();
+    }
+    
+   public void setPerspectiveAngle(short val) {
+      if (view3D.isSetPerspective()) {
+         view3D.getPerspective().setVal(val);
+      } else {
+         view3D.addNewPerspective().setVal(val);
+      }
+   }
+    
+    public int getDepthPercentVal() {
+        return view3D.getDepthPercent().getVal();
+    }
+    
+   public void setDepthPercent(int val) {
+      if (view3D.isSetDepthPercent()) {
+         view3D.getDepthPercent().setVal(val);
+      } else {
+         view3D.addNewDepthPercent().setVal(val);
+      }
+   }
+    
+    public int getHeightPercent() {
+        return view3D.getHPercent().getVal();
+    }
+    
+   public void setHeightPercent(int val) {
+      if (view3D.isSetHPercent()) {
+         view3D.getHPercent().setVal(val);
+      } else {
+         view3D.addNewHPercent().setVal(val);
+      }
+   }
+}



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