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/11/30 01:20:20 UTC
svn commit: r1870603 -
/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/
Author: abearez
Date: Sat Nov 30 01:20:20 2019
New Revision: 1870603
URL: http://svn.apache.org/viewvc?rev=1870603&view=rev
Log:
Clean-up code for more recent chart types
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.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/XDDFLine3DChartData.java
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java
poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFArea3DChartData.java Sat Nov 30 01:20:20 2019
@@ -126,7 +126,7 @@ public class XDDFArea3DChartData extends
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTAreaSer ctSer = this.chart.addNewSer();
ctSer.addNewCat();
ctSer.addNewVal();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFAreaChartData.java Sat Nov 30 01:20:20 2019
@@ -104,7 +104,7 @@ public class XDDFAreaChartData extends X
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTAreaSer ctSer = this.chart.addNewSer();
ctSer.addNewCat();
ctSer.addNewVal();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFBar3DChartData.java Sat Nov 30 01:20:20 2019
@@ -181,7 +181,7 @@ public class XDDFBar3DChartData extends
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTBarSer ctSer = this.chart.addNewSer();
ctSer.addNewTx();
ctSer.addNewCat();
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=1870603&r1=1870602&r2=1870603&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 Sat Nov 30 01:20:20 2019
@@ -380,7 +380,7 @@ public abstract class XDDFChart extends
}
public XDDFManualLayout getOrAddManualLayout() {
- return new XDDFManualLayout(chart.getPlotArea());
+ return new XDDFManualLayout(getCTPlotArea());
}
private long seriesCount = 0;
@@ -390,7 +390,8 @@ public abstract class XDDFChart extends
public void plot(XDDFChartData data) {
XSSFSheet sheet = getSheet();
- for (XDDFChartData.Series series : data.getSeries()) {
+ for (int idx = 0; idx < data.getSeriesCount(); idx++) {
+ XDDFChartData.Series series = data.getSeries(idx);
series.plot();
XDDFDataSource<?> categoryDS = series.getCategoryData();
XDDFNumericalDataSource<? extends Number> valuesDS = series.getValuesData();
@@ -468,7 +469,6 @@ public abstract class XDDFChart extends
CTSurface3DChart surfaceChart = plotArea.getSurface3DChartArray(i);
series.add(new XDDFSurface3DChartData(this, surfaceChart, categories, values));
}
-
// TODO repeat above code for missing charts: Bubble, Doughnut, OfPie and Stock
return series;
}
@@ -496,7 +496,7 @@ public abstract class XDDFChart extends
}
public XDDFValueAxis createValueAxis(AxisPosition pos) {
- XDDFValueAxis valueAxis = new XDDFValueAxis(chart.getPlotArea(), pos);
+ XDDFValueAxis valueAxis = new XDDFValueAxis(getCTPlotArea(), pos);
if (axes.size() == 1) {
XDDFChartAxis axis = axes.get(0);
axis.crossAxis(valueAxis);
@@ -513,7 +513,7 @@ public abstract class XDDFChart extends
* @return series axis with specified position
*/
public XDDFSeriesAxis createSeriesAxis(AxisPosition pos) {
- XDDFSeriesAxis seriesAxis = new XDDFSeriesAxis(chart.getPlotArea(), pos);
+ XDDFSeriesAxis seriesAxis = new XDDFSeriesAxis(getCTPlotArea(), pos);
if (axes.size() == 1) {
XDDFChartAxis axis = axes.get(0);
axis.crossAxis(seriesAxis);
@@ -524,7 +524,7 @@ public abstract class XDDFChart extends
}
public XDDFCategoryAxis createCategoryAxis(AxisPosition pos) {
- XDDFCategoryAxis categoryAxis = new XDDFCategoryAxis(chart.getPlotArea(), pos);
+ XDDFCategoryAxis categoryAxis = new XDDFCategoryAxis(getCTPlotArea(), pos);
if (axes.size() == 1) {
XDDFChartAxis axis = axes.get(0);
axis.crossAxis(categoryAxis);
@@ -535,7 +535,7 @@ public abstract class XDDFChart extends
}
public XDDFDateAxis createDateAxis(AxisPosition pos) {
- XDDFDateAxis dateAxis = new XDDFDateAxis(chart.getPlotArea(), pos);
+ XDDFDateAxis dateAxis = new XDDFDateAxis(getCTPlotArea(), pos);
if (axes.size() == 1) {
XDDFChartAxis axis = axes.get(0);
axis.crossAxis(dateAxis);
@@ -602,23 +602,23 @@ public abstract class XDDFChart extends
}
private boolean hasAxes() {
- CTPlotArea ctPlotArea = chart.getPlotArea();
+ CTPlotArea ctPlotArea = getCTPlotArea();
int totalAxisCount = ctPlotArea.sizeOfValAxArray() + ctPlotArea.sizeOfCatAxArray() + ctPlotArea
.sizeOfDateAxArray() + ctPlotArea.sizeOfSerAxArray();
return totalAxisCount > 0;
}
private void parseAxes() {
- for (CTCatAx catAx : chart.getPlotArea().getCatAxArray()) {
+ for (CTCatAx catAx : getCTPlotArea().getCatAxArray()) {
axes.add(new XDDFCategoryAxis(catAx));
}
- for (CTDateAx dateAx : chart.getPlotArea().getDateAxArray()) {
+ for (CTDateAx dateAx : getCTPlotArea().getDateAxArray()) {
axes.add(new XDDFDateAxis(dateAx));
}
- for (CTSerAx serAx : chart.getPlotArea().getSerAxArray()) {
+ for (CTSerAx serAx : getCTPlotArea().getSerAxArray()) {
axes.add(new XDDFSeriesAxis(serAx));
}
- for (CTValAx valAx : chart.getPlotArea().getValAxArray()) {
+ for (CTValAx valAx : getCTPlotArea().getValAxArray()) {
axes.add(new XDDFValueAxis(valAx));
}
}
@@ -775,10 +775,11 @@ public abstract class XDDFChart extends
* @since POI 4.0.0
*/
private XSSFRow getRow(XSSFSheet sheet, int index) {
- if (sheet.getRow(index) != null) {
- return sheet.getRow(index);
- } else {
+ XSSFRow row = sheet.getRow(index);
+ if (row == null) {
return sheet.createRow(index);
+ } else {
+ return row;
}
}
@@ -794,10 +795,11 @@ public abstract class XDDFChart extends
* @since POI 4.0.0
*/
private XSSFCell getCell(XSSFRow row, int index) {
- if (row.getCell(index) != null) {
- return row.getCell(index);
- } else {
+ XSSFCell cell = row.getCell(index);
+ if (cell == null) {
return row.createCell(index);
+ } else {
+ return cell;
}
}
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=1870603&r1=1870602&r2=1870603&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 Sat Nov 30 01:20:20 2019
@@ -346,20 +346,26 @@ public abstract class XDDFChartData {
private void fillStringCache(CTStrData cache, int numOfPoints, XDDFDataSource<?> data) {
cache.setPtArray(null); // unset old values
- if (data.getPointAt(0) != null) { // assuming no value for first is no values at all
+ int effectiveNumOfPoints = 0;
+ for (int i = 0; i < numOfPoints; ++i) {
+ Object value = data.getPointAt(i);
+ if (value != null) {
+ CTStrVal ctStrVal = cache.addNewPt();
+ ctStrVal.setIdx(i);
+ ctStrVal.setV(value.toString());
+ effectiveNumOfPoints++;
+ }
+ }
+ if (effectiveNumOfPoints == 0) {
+ if (cache.isSetPtCount()) {
+ cache.unsetPtCount();
+ }
+ } else {
if (cache.isSetPtCount()) {
cache.getPtCount().setVal(numOfPoints);
} else {
cache.addNewPtCount().setVal(numOfPoints);
}
- for (int i = 0; i < numOfPoints; ++i) {
- String value = data.getPointAt(i).toString();
- if (value != null) {
- CTStrVal ctStrVal = cache.addNewPt();
- ctStrVal.setIdx(i);
- ctStrVal.setV(value);
- }
- }
}
}
@@ -373,20 +379,24 @@ public abstract class XDDFChartData {
cache.setFormatCode(formatCode);
}
cache.setPtArray(null); // unset old values
- if (data.getPointAt(0) != null) { // assuming no value for first is no values at all
+ int effectiveNumOfPoints = 0;
+ for (int i = 0; i < numOfPoints; ++i) {
+ Object value = data.getPointAt(i);
+ if (value != null) {
+ CTNumVal ctNumVal = cache.addNewPt();
+ ctNumVal.setIdx(i);
+ ctNumVal.setV(value.toString());
+ effectiveNumOfPoints++;
+ }
+ }
+ if (effectiveNumOfPoints == 0) {
+ cache.unsetPtCount();
+ } else {
if (cache.isSetPtCount()) {
cache.getPtCount().setVal(numOfPoints);
} else {
cache.addNewPtCount().setVal(numOfPoints);
}
- for (int i = 0; i < numOfPoints; ++i) {
- Object value = data.getPointAt(i);
- if (value != null) {
- CTNumVal ctNumVal = cache.addNewPt();
- ctNumVal.setIdx(i);
- ctNumVal.setV(value.toString());
- }
- }
}
}
}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFLine3DChartData.java Sat Nov 30 01:20:20 2019
@@ -117,7 +117,7 @@ public class XDDFLine3DChartData extends
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTLineSer ctSer = this.chart.addNewSer();
ctSer.addNewCat();
ctSer.addNewVal();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFPie3DChartData.java Sat Nov 30 01:20:20 2019
@@ -63,7 +63,7 @@ public class XDDFPie3DChartData extends
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTPieSer ctSer = this.chart.addNewSer();
ctSer.addNewCat();
ctSer.addNewVal();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurface3DChartData.java Sat Nov 30 01:20:20 2019
@@ -101,7 +101,7 @@ public class XDDFSurface3DChartData exte
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTSurfaceSer ctSer = this.chart.addNewSer();
ctSer.addNewCat();
ctSer.addNewVal();
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java?rev=1870603&r1=1870602&r2=1870603&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFSurfaceChartData.java Sat Nov 30 01:20:20 2019
@@ -101,7 +101,7 @@ public class XDDFSurfaceChartData extend
@Override
public XDDFChartData.Series addSeries(XDDFDataSource<?> category,
XDDFNumericalDataSource<? extends Number> values) {
- final int index = this.series.size();
+ final long index = this.parent.incrementSeriesCount();
final CTSurfaceSer ctSer = this.chart.addNewSer();
ctSer.addNewCat();
ctSer.addNewVal();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org