Browse Source

Bug 57362: Properly initialize chart axis when loading a workbook which already contains a chart.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1647317 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_12_BETA1
Dominik Stadler 9 years ago
parent
commit
e224d82fe5

+ 8
- 9
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFChart.java View File

*/ */
private CTChart chart; private CTChart chart;


List<XSSFChartAxis> axis;
List<XSSFChartAxis> axis = new ArrayList<XSSFChartAxis>();


/** /**
* Create a new SpreadsheetML chart * Create a new SpreadsheetML chart
*/ */
protected XSSFChart() { protected XSSFChart() {
super(); super();
axis = new ArrayList<XSSFChartAxis>();
createChart(); createChart();
} }


return categoryAxis; return categoryAxis;
} }


public List<? extends XSSFChartAxis> getAxis() {
if (axis.isEmpty() && hasAxis()) {
parseAxis();
}
return axis;
}
public List<? extends XSSFChartAxis> getAxis() {
if (axis.isEmpty() && hasAxis()) {
parseAxis();
}
return axis;
}
public XSSFManualLayout getManualLayout() { public XSSFManualLayout getManualLayout() {
return new XSSFManualLayout(this); return new XSSFManualLayout(this);
} }

+ 22
- 0
src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartAxis.java View File



package org.apache.poi.xssf.usermodel.charts; package org.apache.poi.xssf.usermodel.charts;


import java.util.List;

import junit.framework.TestCase; import junit.framework.TestCase;


import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.charts.*; import org.apache.poi.ss.usermodel.charts.*;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.usermodel.*; import org.apache.poi.xssf.usermodel.*;


public final class TestXSSFChartAxis extends TestCase { public final class TestXSSFChartAxis extends TestCase {
axis.setMinorTickMark(AxisTickMark.CROSS); axis.setMinorTickMark(AxisTickMark.CROSS);
assertEquals(AxisTickMark.CROSS, axis.getMinorTickMark()); assertEquals(AxisTickMark.CROSS, axis.getMinorTickMark());
} }

public void testGetChartAxisBug57362() {
//Load existing excel with some chart on it having primary and secondary axis.
final Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("57362.xlsx");
final Sheet sh = workbook.getSheetAt(0);
final XSSFSheet xsh = (XSSFSheet) sh;
final XSSFDrawing drawing = xsh.createDrawingPatriarch();
final XSSFChart chart = drawing.getCharts().get(0);

final List<? extends XSSFChartAxis> axisList = chart.getAxis();

assertEquals(4, axisList.size());
assertNotNull(axisList.get(0));
assertNotNull(axisList.get(1));
assertNotNull(axisList.get(2));
assertNotNull(axisList.get(3));
}
} }

BIN
test-data/spreadsheet/57362.xlsx View File


Loading…
Cancel
Save