Standardize some more common chart axis properties.
Implement the ChartAxis ss interface for date axes, which are pretty much a category axis with one extra property, a date granularity (not currently passed through, get it still from the CT* class). Created the class and test from the category axis versions. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1798414 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
036aa25f72
commit
e5c5cba87c
@ -153,4 +153,10 @@ public interface ChartAxis {
|
|||||||
* @param tickMark minor tick mark type.
|
* @param tickMark minor tick mark type.
|
||||||
*/
|
*/
|
||||||
void setMinorTickMark(AxisTickMark tickMark);
|
void setMinorTickMark(AxisTickMark tickMark);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use this to check before retrieving a number format, as calling {@link #getNumberFormat()} may create a default one if none exists.
|
||||||
|
* @return true if a number format element is defined, false if not
|
||||||
|
*/
|
||||||
|
boolean hasNumberFormat();
|
||||||
}
|
}
|
||||||
|
@ -29,13 +29,21 @@ import org.apache.poi.util.Beta;
|
|||||||
public interface ChartAxisFactory {
|
public interface ChartAxisFactory {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return new value axis
|
* @param pos
|
||||||
|
* @return new value axis at the end of the list at the specified chart position
|
||||||
*/
|
*/
|
||||||
ValueAxis createValueAxis(AxisPosition pos);
|
ValueAxis createValueAxis(AxisPosition pos);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return new category axis.
|
* @param pos
|
||||||
|
* @return new category axis at the end of the list at the specified chart position
|
||||||
*/
|
*/
|
||||||
ChartAxis createCategoryAxis(AxisPosition pos);
|
ChartAxis createCategoryAxis(AxisPosition pos);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param pos
|
||||||
|
* @return new date category axis at the end of the list at the specified chart position
|
||||||
|
*/
|
||||||
|
ChartAxis createDateAxis(AxisPosition pos);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,7 @@ import org.apache.poi.xssf.usermodel.charts.XSSFCategoryAxis;
|
|||||||
import org.apache.poi.xssf.usermodel.charts.XSSFChartAxis;
|
import org.apache.poi.xssf.usermodel.charts.XSSFChartAxis;
|
||||||
import org.apache.poi.xssf.usermodel.charts.XSSFChartDataFactory;
|
import org.apache.poi.xssf.usermodel.charts.XSSFChartDataFactory;
|
||||||
import org.apache.poi.xssf.usermodel.charts.XSSFChartLegend;
|
import org.apache.poi.xssf.usermodel.charts.XSSFChartLegend;
|
||||||
|
import org.apache.poi.xssf.usermodel.charts.XSSFDateAxis;
|
||||||
import org.apache.poi.xssf.usermodel.charts.XSSFManualLayout;
|
import org.apache.poi.xssf.usermodel.charts.XSSFManualLayout;
|
||||||
import org.apache.poi.xssf.usermodel.charts.XSSFValueAxis;
|
import org.apache.poi.xssf.usermodel.charts.XSSFValueAxis;
|
||||||
import org.apache.xmlbeans.XmlException;
|
import org.apache.xmlbeans.XmlException;
|
||||||
@ -47,6 +48,7 @@ import org.apache.xmlbeans.XmlOptions;
|
|||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCatAx;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCatAx;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChart;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChart;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartSpace;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartSpace;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTDateAx;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPageMargins;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPageMargins;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPlotArea;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPlotArea;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPrintSettings;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTPrintSettings;
|
||||||
@ -224,6 +226,18 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
|
|||||||
return categoryAxis;
|
return categoryAxis;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public XSSFDateAxis createDateAxis(AxisPosition pos) {
|
||||||
|
long id = axis.size() + 1;
|
||||||
|
XSSFDateAxis dateAxis = new XSSFDateAxis(this, id, pos);
|
||||||
|
if (axis.size() == 1) {
|
||||||
|
ChartAxis ax = axis.get(0);
|
||||||
|
ax.crossAxis(dateAxis);
|
||||||
|
dateAxis.crossAxis(ax);
|
||||||
|
}
|
||||||
|
axis.add(dateAxis);
|
||||||
|
return dateAxis;
|
||||||
|
}
|
||||||
|
|
||||||
public List<? extends XSSFChartAxis> getAxis() {
|
public List<? extends XSSFChartAxis> getAxis() {
|
||||||
if (axis.isEmpty() && hasAxis()) {
|
if (axis.isEmpty() && hasAxis()) {
|
||||||
parseAxis();
|
parseAxis();
|
||||||
@ -438,6 +452,7 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
|
|||||||
private void parseAxis() {
|
private void parseAxis() {
|
||||||
// TODO: add other axis types
|
// TODO: add other axis types
|
||||||
parseCategoryAxis();
|
parseCategoryAxis();
|
||||||
|
parseDateAxis();
|
||||||
parseValueAxis();
|
parseValueAxis();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -447,6 +462,12 @@ public final class XSSFChart extends POIXMLDocumentPart implements Chart, ChartA
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void parseDateAxis() {
|
||||||
|
for (CTDateAx dateAx : chart.getPlotArea().getDateAxArray()) {
|
||||||
|
axis.add(new XSSFDateAxis(this, dateAx));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void parseValueAxis() {
|
private void parseValueAxis() {
|
||||||
for (CTValAx valAx : chart.getPlotArea().getValAxArray()) {
|
for (CTValAx valAx : chart.getPlotArea().getValAxArray()) {
|
||||||
axis.add(new XSSFValueAxis(this, valAx));
|
axis.add(new XSSFValueAxis(this, valAx));
|
||||||
|
@ -17,10 +17,22 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.usermodel.charts;
|
package org.apache.poi.xssf.usermodel.charts;
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.charts.*;
|
import org.apache.poi.ss.usermodel.charts.AxisCrosses;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisOrientation;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisPosition;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisTickMark;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.ChartAxis;
|
||||||
import org.apache.poi.util.Beta;
|
import org.apache.poi.util.Beta;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFChart;
|
import org.apache.poi.xssf.usermodel.XSSFChart;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.*;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxPos;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBoolean;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCatAx;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartLines;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCrosses;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumFmt;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTScaling;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTickMark;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STTickLblPos;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Category axis type.
|
* Category axis type.
|
||||||
@ -80,6 +92,10 @@ public class XSSFCategoryAxis extends XSSFChartAxis {
|
|||||||
return ctCatAx.getMinorTickMark();
|
return ctCatAx.getMinorTickMark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CTChartLines getMajorGridLines() {
|
||||||
|
return ctCatAx.getMajorGridlines();
|
||||||
|
}
|
||||||
|
|
||||||
public void crossAxis(ChartAxis axis) {
|
public void crossAxis(ChartAxis axis) {
|
||||||
ctCatAx.getCrossAx().setVal(axis.getId());
|
ctCatAx.getCrossAx().setVal(axis.getId());
|
||||||
}
|
}
|
||||||
@ -103,4 +119,8 @@ public class XSSFCategoryAxis extends XSSFChartAxis {
|
|||||||
setMajorTickMark(AxisTickMark.CROSS);
|
setMajorTickMark(AxisTickMark.CROSS);
|
||||||
setMinorTickMark(AxisTickMark.NONE);
|
setMinorTickMark(AxisTickMark.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasNumberFormat() {
|
||||||
|
return ctCatAx.isSetNumFmt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,24 +17,25 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.usermodel.charts;
|
package org.apache.poi.xssf.usermodel.charts;
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.charts.ChartAxis;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisPosition;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisOrientation;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisCrosses;
|
import org.apache.poi.ss.usermodel.charts.AxisCrosses;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisOrientation;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisPosition;
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisTickMark;
|
import org.apache.poi.ss.usermodel.charts.AxisTickMark;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.ChartAxis;
|
||||||
import org.apache.poi.util.Beta;
|
import org.apache.poi.util.Beta;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFChart;
|
import org.apache.poi.xssf.usermodel.XSSFChart;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxPos;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxPos;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBoolean;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBoolean;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumFmt;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartLines;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCrosses;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCrosses;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTOrientation;
|
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTLogBase;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTLogBase;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumFmt;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTOrientation;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTScaling;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTScaling;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTickMark;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTickMark;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.STOrientation;
|
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.STAxPos;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STAxPos;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.STCrosses;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STCrosses;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STOrientation;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.STTickMark;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STTickMark;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -193,6 +194,7 @@ public abstract class XSSFChartAxis implements ChartAxis {
|
|||||||
protected abstract CTBoolean getDelete();
|
protected abstract CTBoolean getDelete();
|
||||||
protected abstract CTTickMark getMajorCTTickMark();
|
protected abstract CTTickMark getMajorCTTickMark();
|
||||||
protected abstract CTTickMark getMinorCTTickMark();
|
protected abstract CTTickMark getMinorCTTickMark();
|
||||||
|
public abstract CTChartLines getMajorGridLines();
|
||||||
|
|
||||||
private static STOrientation.Enum fromAxisOrientation(AxisOrientation orientation) {
|
private static STOrientation.Enum fromAxisOrientation(AxisOrientation orientation) {
|
||||||
switch (orientation) {
|
switch (orientation) {
|
||||||
|
@ -0,0 +1,134 @@
|
|||||||
|
/* ====================================================================
|
||||||
|
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.xssf.usermodel.charts;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisCrosses;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisOrientation;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisPosition;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisTickMark;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.ChartAxis;
|
||||||
|
import org.apache.poi.util.Beta;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFChart;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxPos;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBoolean;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCatAx;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartLines;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCrosses;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTDateAx;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumFmt;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTScaling;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTickMark;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STTickLblPos;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Date axis type. Currently only implements the same values as {@link XSSFCategoryAxis}, since the two are nearly identical.
|
||||||
|
*/
|
||||||
|
@Beta
|
||||||
|
public class XSSFDateAxis extends XSSFChartAxis {
|
||||||
|
|
||||||
|
private CTDateAx ctDateAx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param chart
|
||||||
|
* @param id
|
||||||
|
* @param pos
|
||||||
|
*/
|
||||||
|
public XSSFDateAxis(XSSFChart chart, long id, AxisPosition pos) {
|
||||||
|
super(chart);
|
||||||
|
createAxis(id, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param chart
|
||||||
|
* @param ctDateAx
|
||||||
|
*/
|
||||||
|
public XSSFDateAxis(XSSFChart chart, CTDateAx ctDateAx) {
|
||||||
|
super(chart);
|
||||||
|
this.ctDateAx = ctDateAx;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return ctDateAx.getAxId().getVal();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CTAxPos getCTAxPos() {
|
||||||
|
return ctDateAx.getAxPos();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CTNumFmt getCTNumFmt() {
|
||||||
|
if (ctDateAx.isSetNumFmt()) {
|
||||||
|
return ctDateAx.getNumFmt();
|
||||||
|
}
|
||||||
|
return ctDateAx.addNewNumFmt();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CTScaling getCTScaling() {
|
||||||
|
return ctDateAx.getScaling();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected CTCrosses getCTCrosses() {
|
||||||
|
return ctDateAx.getCrosses();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CTBoolean getDelete() {
|
||||||
|
return ctDateAx.getDelete();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CTTickMark getMajorCTTickMark() {
|
||||||
|
return ctDateAx.getMajorTickMark();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected CTTickMark getMinorCTTickMark() {
|
||||||
|
return ctDateAx.getMinorTickMark();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CTChartLines getMajorGridLines() {
|
||||||
|
return ctDateAx.getMajorGridlines();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void crossAxis(ChartAxis axis) {
|
||||||
|
ctDateAx.getCrossAx().setVal(axis.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createAxis(long id, AxisPosition pos) {
|
||||||
|
ctDateAx = chart.getCTChart().getPlotArea().addNewDateAx();
|
||||||
|
ctDateAx.addNewAxId().setVal(id);
|
||||||
|
ctDateAx.addNewAxPos();
|
||||||
|
ctDateAx.addNewScaling();
|
||||||
|
ctDateAx.addNewCrosses();
|
||||||
|
ctDateAx.addNewCrossAx();
|
||||||
|
ctDateAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
|
||||||
|
ctDateAx.addNewDelete();
|
||||||
|
ctDateAx.addNewMajorTickMark();
|
||||||
|
ctDateAx.addNewMinorTickMark();
|
||||||
|
|
||||||
|
setPosition(pos);
|
||||||
|
setOrientation(AxisOrientation.MIN_MAX);
|
||||||
|
setCrosses(AxisCrosses.AUTO_ZERO);
|
||||||
|
setVisible(true);
|
||||||
|
setMajorTickMark(AxisTickMark.CROSS);
|
||||||
|
setMinorTickMark(AxisTickMark.NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean hasNumberFormat() {
|
||||||
|
return ctDateAx.isSetNumFmt();
|
||||||
|
}
|
||||||
|
}
|
@ -17,23 +17,23 @@
|
|||||||
|
|
||||||
package org.apache.poi.xssf.usermodel.charts;
|
package org.apache.poi.xssf.usermodel.charts;
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.charts.ChartAxis;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.ValueAxis;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisPosition;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisOrientation;
|
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisCrossBetween;
|
import org.apache.poi.ss.usermodel.charts.AxisCrossBetween;
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisCrosses;
|
import org.apache.poi.ss.usermodel.charts.AxisCrosses;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisOrientation;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.AxisPosition;
|
||||||
import org.apache.poi.ss.usermodel.charts.AxisTickMark;
|
import org.apache.poi.ss.usermodel.charts.AxisTickMark;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.ChartAxis;
|
||||||
|
import org.apache.poi.ss.usermodel.charts.ValueAxis;
|
||||||
import org.apache.poi.util.Beta;
|
import org.apache.poi.util.Beta;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFChart;
|
import org.apache.poi.xssf.usermodel.XSSFChart;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTValAx;
|
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxPos;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTAxPos;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBoolean;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTBoolean;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumFmt;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTChartLines;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCrosses;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTCrosses;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTNumFmt;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTScaling;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTScaling;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTickMark;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTTickMark;
|
||||||
|
import org.openxmlformats.schemas.drawingml.x2006.chart.CTValAx;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.STCrossBetween;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STCrossBetween;
|
||||||
import org.openxmlformats.schemas.drawingml.x2006.chart.STTickLblPos;
|
import org.openxmlformats.schemas.drawingml.x2006.chart.STTickLblPos;
|
||||||
|
|
||||||
@ -107,6 +107,10 @@ public class XSSFValueAxis extends XSSFChartAxis implements ValueAxis {
|
|||||||
return ctValAx.getMinorTickMark();
|
return ctValAx.getMinorTickMark();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CTChartLines getMajorGridLines() {
|
||||||
|
return ctValAx.getMajorGridlines();
|
||||||
|
}
|
||||||
|
|
||||||
public void crossAxis(ChartAxis axis) {
|
public void crossAxis(ChartAxis axis) {
|
||||||
ctValAx.getCrossAx().setVal(axis.getId());
|
ctValAx.getCrossAx().setVal(axis.getId());
|
||||||
}
|
}
|
||||||
@ -150,4 +154,8 @@ public class XSSFValueAxis extends XSSFChartAxis implements ValueAxis {
|
|||||||
throw new IllegalArgumentException();
|
throw new IllegalArgumentException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasNumberFormat() {
|
||||||
|
return ctValAx.isSetNumFmt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
/* ====================================================================
|
||||||
|
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.xssf.usermodel.charts;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.charts.*;
|
||||||
|
import org.apache.poi.xssf.usermodel.*;
|
||||||
|
|
||||||
|
public final class TestXSSFDateAxis extends TestCase {
|
||||||
|
|
||||||
|
public void testAccessMethods() throws Exception {
|
||||||
|
XSSFWorkbook wb = new XSSFWorkbook();
|
||||||
|
XSSFSheet sheet = wb.createSheet();
|
||||||
|
XSSFDrawing drawing = sheet.createDrawingPatriarch();
|
||||||
|
XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30);
|
||||||
|
XSSFChart chart = drawing.createChart(anchor);
|
||||||
|
XSSFDateAxis axis = chart.getChartAxisFactory().createDateAxis(AxisPosition.BOTTOM);
|
||||||
|
|
||||||
|
axis.setCrosses(AxisCrosses.AUTO_ZERO);
|
||||||
|
assertEquals(axis.getCrosses(), AxisCrosses.AUTO_ZERO);
|
||||||
|
|
||||||
|
assertEquals(chart.getAxis().size(), 1);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user