]> source.dussan.org Git - poi.git/commitdiff
Manipulate individual data point properties
authorAlain Béarez <abearez@apache.org>
Wed, 17 Feb 2021 22:05:18 +0000 (22:05 +0000)
committerAlain Béarez <abearez@apache.org>
Wed, 17 Feb 2021 22:05:18 +0000 (22:05 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886642 13f79535-47bb-0310-9956-ffa450edef68

18 files changed:
src/examples/src/org/apache/poi/examples/xslf/PieChartDemo.java
src/examples/src/org/apache/poi/examples/xssf/usermodel/BarAndLineChart.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBarChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataPoint.java [new file with mode: 0644]
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDoughnutChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLineChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPieChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFRadarChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFScatterChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java
src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java
src/ooxml/testcases/org/apache/poi/xddf/usermodel/TestNecessaryOOXMLClasses.java

index 8bcd014769824bf80bc8d06c9eb7a78471babdcc..5f3d6470c86553a17e3600b107d02653693c76bc 100644 (file)
@@ -110,6 +110,7 @@ public final class PieChartDemo {
                    firstSeries.replaceData(categoriesData, valuesData);
                    firstSeries.setTitle(chartTitle, chart.setSheetTitle(chartTitle, 0));
                    firstSeries.setExplosion(25L);
+                   firstSeries.getDataPoint(1).setExplosion(35L);
                    chart.plot(pie);
 
                 // save the result
index e5cf0542b058e15e95bee68d16a0f0a0961bb195..32329f2c297ba58aad615d1fc7f0f879f695601b 100644 (file)
@@ -166,10 +166,15 @@ public final class BarAndLineChart {
             // some colors
             XDDFFillProperties solidChartreuse = new XDDFSolidFillProperties(XDDFColor.from(PresetColor.CHARTREUSE));
             XDDFFillProperties solidTurquoise = new XDDFSolidFillProperties(XDDFColor.from(PresetColor.TURQUOISE));
-            XDDFLineProperties solidLines = new XDDFLineProperties(solidTurquoise);
+            XDDFLineProperties linesChartreuse = new XDDFLineProperties(solidChartreuse);
+            XDDFLineProperties linesTurquoise = new XDDFLineProperties(solidTurquoise);
             series1.setFillProperties(solidChartreuse);
-            series1.setLineProperties(solidLines); // bar border color different from fill
-            series2.setLineProperties(solidLines);
+            series1.setLineProperties(linesTurquoise); // bar border color different from fill
+            series1.getDataPoint(2).setFillProperties(solidTurquoise); // this specific bar has inverted colors
+            series1.getDataPoint(2).setLineProperties(linesChartreuse);
+            series2.setLineProperties(linesTurquoise);
+            series2.getDataPoint(2).setMarkerStyle(MarkerStyle.STAR);
+            series2.getDataPoint(2).setLineProperties(linesChartreuse);
 
             // legend
             XDDFChartLegend legend = chart.getOrAddLegend();
index c94cb32381ace1e21ef977455627e38aae7169eb..ebc0ee63057434cdd0987994006d258a58c9cc84 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.ooxml.util.POIXMLUnits;
@@ -26,6 +27,7 @@ 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.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
@@ -212,5 +214,10 @@ public class XDDFArea3DChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 1d67f106861c42ceae6f83589a5b1ba7abe71069..e09121225cf9bf9064502969a8a75482846954c0 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.util.Beta;
@@ -25,6 +26,7 @@ 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.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
@@ -193,5 +195,10 @@ public class XDDFAreaChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 6c52b8e30f3a91db897ea079a1ba16e3ce13480f..3f6984f6e43cd3a6fa96248c7f49725cdc6c760a 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.ooxml.util.POIXMLUnits;
@@ -26,6 +27,7 @@ import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTBar3DChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTBarSer;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
@@ -320,5 +322,10 @@ public class XDDFBar3DChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 25eb5d97e20df65274683f3d96cf7635f63a8df1..9ff0bc0d94fd26409f0a73121c5a48630ae347b7 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.ooxml.util.POIXMLUnits;
@@ -26,6 +27,7 @@ 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.CTBarSer;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 
@@ -310,5 +312,10 @@ public class XDDFBarChartData extends XDDFChartData {
         protected void setOrder(long order) {
             series.getOrder().setVal(order);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 225749f50885ed21a90fbecd8208e3a706d20634..365d3f37fdffcb14467a03d0e722de49caceb243 100644 (file)
@@ -30,6 +30,7 @@ import org.apache.poi.xddf.usermodel.XDDFFillProperties;
 import org.apache.poi.xddf.usermodel.XDDFLineProperties;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumData;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumRef;
@@ -157,6 +158,8 @@ public abstract class XDDFChartData {
 
         protected abstract void setOrder(long order);
 
+        protected abstract List<CTDPt> getDPtList();
+
         protected Series(XDDFDataSource<?> category, XDDFNumericalDataSource<? extends Number> values) {
             replaceData(category, values);
         }
@@ -251,6 +254,53 @@ public abstract class XDDFChartData {
             setShapeProperties(properties);
         }
 
+        /**
+         * If a data point definition with the given <code>index</code> exists, then remove it.
+         * Otherwise do nothing.
+         *
+         * @param index
+         *      data point index.
+         * @since POI 5.0.1
+         */
+        public void clearDataPoint(long index) {
+            List<CTDPt> points = getDPtList();
+            for (int i = 0; i < points.size(); i++) {
+                if (points.get(i).getIdx().getVal() == index) {
+                    points.remove(i);
+                    i = points.size();
+                }
+            }
+        }
+
+        /**
+         * If a data point definition with the given <code>index</code> exists, then return it.
+         * Otherwise create a new data point definition and return it.
+         *
+         * @param index
+         *      data point index.
+         * @return
+         *      the data point with the given <code>index</code>.
+         * @since POI 5.0.1
+         */
+        public XDDFDataPoint getDataPoint(long index) {
+            List<CTDPt> points = getDPtList();
+            for (int i = 0; i < points.size(); i++) {
+                if (points.get(i).getIdx().getVal() == index) {
+                    return new XDDFDataPoint(points.get(i));
+                }
+                if (points.get(i).getIdx().getVal() > index) {
+                    points.add(i, CTDPt.Factory.newInstance());
+                    CTDPt point = points.get(i);
+                    point.addNewIdx().setVal(index);
+                    return new XDDFDataPoint(point);
+                }
+            }
+            points.add(CTDPt.Factory.newInstance());
+            CTDPt point = points.get(points.size() - 1);
+            point.addNewIdx().setVal(index);
+            return new XDDFDataPoint(point);
+        }
+
         private CTNumData retrieveNumCache(final CTAxDataSource axDataSource, XDDFDataSource<?> data) {
             CTNumData numCache;
             if (data.isReference()) {
diff --git a/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataPoint.java b/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFDataPoint.java
new file mode 100644 (file)
index 0000000..01c8660
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+ *  ====================================================================
+ *    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.apache.poi.util.Beta;
+import org.apache.poi.util.Internal;
+import org.apache.poi.xddf.usermodel.XDDFFillProperties;
+import org.apache.poi.xddf.usermodel.XDDFLineProperties;
+import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
+
+/**
+ * @since 5.0.1
+ */
+@Beta
+public class XDDFDataPoint {
+    private final CTDPt point;
+
+    @Internal
+    protected XDDFDataPoint(CTDPt point) {
+        this.point = point;
+    }
+
+    public long getIndex() {
+        return point.getIdx().getVal();
+    }
+
+    /**
+     * @param fill
+     *      fill property for the shape representing the point.
+     */
+    public void setFillProperties(XDDFFillProperties fill) {
+        XDDFShapeProperties properties = getShapeProperties();
+        if (properties == null) {
+            properties = new XDDFShapeProperties();
+        }
+        properties.setFillProperties(fill);
+        setShapeProperties(properties);
+    }
+
+    /**
+     * @param line
+     *      line property for the shape representing the point.
+     */
+    public void setLineProperties(XDDFLineProperties line) {
+        XDDFShapeProperties properties = getShapeProperties();
+        if (properties == null) {
+            properties = new XDDFShapeProperties();
+        }
+        properties.setLineProperties(line);
+        setShapeProperties(properties);
+    }
+
+    public XDDFShapeProperties getShapeProperties() {
+        if (point.isSetSpPr()) {
+            return new XDDFShapeProperties(point.getSpPr());
+        } else {
+            return null;
+        }
+    }
+
+    public void setShapeProperties(XDDFShapeProperties properties) {
+        if (properties == null) {
+            if (point.isSetSpPr()) {
+                point.unsetSpPr();
+            }
+        } else {
+            if (point.isSetSpPr()) {
+                point.setSpPr(properties.getXmlObject());
+            } else {
+                point.addNewSpPr().set(properties.getXmlObject());
+            }
+        }
+    }
+
+    public Long getExplosion() {
+        if (point.isSetExplosion()) {
+            return point.getExplosion().getVal();
+        } else {
+            return null;
+        }
+    }
+
+    public void setExplosion(Long explosion) {
+        if (explosion == null) {
+            if (point.isSetExplosion()) {
+                point.unsetExplosion();
+            }
+        } else {
+            if (point.isSetExplosion()) {
+                point.getExplosion().setVal(explosion);
+            } else {
+                point.addNewExplosion().setVal(explosion);
+            }
+        }
+    }
+
+    public boolean getInvertIfNegative() {
+        if (point.isSetInvertIfNegative()) {
+            return point.getInvertIfNegative().getVal();
+        }
+        return false;
+    }
+
+    public void setInvertIfNegative(boolean invertIfNegative) {
+        if (point.isSetInvertIfNegative()) {
+            point.getInvertIfNegative().setVal(invertIfNegative);
+        } else {
+            point.addNewInvertIfNegative().setVal(invertIfNegative);
+        }
+    }
+
+    /**
+     * @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);
+        } else {
+            marker.addNewSize().setVal(size);
+        }
+    }
+
+    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 (point.isSetMarker()) {
+            return point.getMarker();
+        } else {
+            return point.addNewMarker();
+        }
+    }
+
+}
index 64f22d7ec74c69f72113d4803420787b5ded0a66..23020f842a66e1e613e31e5f4d9f53dd8993726b 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
+
 import org.apache.poi.ooxml.util.POIXMLUnits;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTDoughnutChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieSer;
@@ -225,5 +228,10 @@ public class XDDFDoughnutChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index db55a7a31e2893d6dbf0ac07097f1426adce7458..2f2e6fa738f597f4f41091c7a5e202404df819ec 100644 (file)
@@ -17,6 +17,7 @@
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.ooxml.util.POIXMLUnits;
@@ -24,6 +25,7 @@ import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTLine3DChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTLineSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
@@ -299,5 +301,10 @@ public class XDDFLine3DChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 17bf9715845f712391c3a7fd938dab33d11622ac..34bad1061967dc31396efb9310cdb4d4a4bc781b 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTLineChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTLineSer;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
@@ -282,5 +284,10 @@ public class XDDFLineChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index b7a8092adb589371dfc9e26421c5571e1aa1a4d8..d2a5059847ff9d5ca945a457a74f4d98caffbd7f 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
+
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTPie3DChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieSer;
@@ -174,5 +177,10 @@ public class XDDFPie3DChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 2d5cff7eeeb7c5915ba6bf6d571d5879d8392683..6a3a28c5763f606c1716980672f114ab66b0642b 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
+
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTPieSer;
@@ -199,5 +202,10 @@ public class XDDFPieChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 7a2159dfb639d9dae773cc808c7ff462690e507c..f7f2edac6d1d8b50c87d3ad28100b457c34fb843 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarChart;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTRadarSer;
@@ -184,5 +186,10 @@ public class XDDFRadarChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 7e27ff9e2dbf785f20f0f77a7b515b30bc8f33f5..bb500cd20f5f2f9b21402242a2bbd4807ab976c9 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTMarker;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTScatterChart;
@@ -292,5 +294,10 @@ public class XDDFScatterChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            return series.getDPtList();
+        }
     }
 }
index 819ef1e2a3b9c8292552385bbaa04fc833174c93..982a10463205d7e5f419e1c9796622982b28f322 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurface3DChart;
@@ -186,5 +188,10 @@ public class XDDFSurface3DChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            throw new IllegalStateException("Surface data series don't support data point settings.");
+        }
     }
 }
index b3e98563f7cbbe0178d8af6424c50eb497a89bd1..25e8fad31c559b02b1b62960f428f8fd70411349 100644 (file)
 
 package org.apache.poi.xddf.usermodel.chart;
 
+import java.util.List;
 import java.util.Map;
 
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.poi.xddf.usermodel.XDDFShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxDataSource;
+import org.openxmlformats.schemas.drawingml.x2006.chart.CTDPt;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumDataSource;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerTx;
 import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurfaceChart;
@@ -186,5 +188,10 @@ public class XDDFSurfaceChartData extends XDDFChartData {
         protected void setOrder(long val) {
             series.getOrder().setVal(val);
         }
+
+        @Override
+        protected List<CTDPt> getDPtList() {
+            throw new IllegalStateException("Surface data series don't support data point settings.");
+        }
     }
-}
\ No newline at end of file
+}
index 0f458b6524d89c4fc9f671c038034e4e9650e865..bc235f51b5d789a022b1d51354b092c78ede140e 100644 (file)
@@ -178,6 +178,7 @@ class TestNecessaryOOXMLClasses {
         assertNotNull(CTErrValType.Factory.newInstance());
         assertNotNull(CTErrDir.Factory.newInstance());
         assertNotNull(CTHoleSize.Factory.newInstance());
+        assertNotNull(CTDPt.Factory.newInstance());
 
         STErrBarType.Enum e9 = STErrBarType.Enum.forString("both");
         assertNotNull(e9);