Author: abearez Date: Fri Oct 5 09:59:32 2018 New Revision: 1842876 URL: http://svn.apache.org/viewvc?rev=1842876&view=rev Log: more XDDF improvements based on SO examples
Added: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFTitle.java Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.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/XDDFChartAxis.java poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFValueAxis.java poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFParagraphProperties.java poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextBody.java poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextParagraph.java Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java (original) +++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/BarChartDemo.java Fri Oct 5 09:59:32 2018 @@ -115,6 +115,8 @@ public class BarChartDemo { series2.setTitle(series[1], chart.setSheetTitle(series[1], 1)); chart.plot(bar); + chart.setTitleText(chartTitle); // https://stackoverflow.com/questions/30532612 + // chart.setTitleOverlay(overlay); } private static void setColumnData(XSLFChart chart, String chartTitle) { Modified: poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java (original) +++ poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/BarChart.java Fri Oct 5 09:59:32 2018 @@ -76,7 +76,9 @@ public class BarChart { // Use a category axis for the bottom axis. XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM); + bottomAxis.setTitle("x"); // https://stackoverflow.com/questions/32010765 XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT); + leftAxis.setTitle("f(x)"); leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); XDDFDataSource<Double> xs = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1)); Modified: poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java (original) +++ poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/LineChart.java Fri Oct 5 09:59:32 2018 @@ -77,7 +77,9 @@ public class LineChart { // Use a category axis for the bottom axis. XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM); + bottomAxis.setTitle("x"); // https://stackoverflow.com/questions/32010765 XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT); + leftAxis.setTitle("f(x)"); leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); XDDFDataSource<Double> xs = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1)); Modified: poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java (original) +++ poi/trunk/src/examples/src/org/apache/poi/xssf/usermodel/examples/ScatterChart.java Fri Oct 5 09:59:32 2018 @@ -77,7 +77,9 @@ public class ScatterChart { legend.setPosition(LegendPosition.TOP_RIGHT); XDDFValueAxis bottomAxis = chart.createValueAxis(AxisPosition.BOTTOM); + bottomAxis.setTitle("x"); // https://stackoverflow.com/questions/32010765 XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT); + leftAxis.setTitle("f(x)"); leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); XDDFDataSource<Double> xs = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(0, 0, 0, NUM_OF_COLUMNS - 1)); Modified: poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java (original) +++ poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/examples/BarChartExample.java Fri Oct 5 09:59:32 2018 @@ -117,6 +117,8 @@ public class BarChartExample { series2.setTitle(series[1], chart.setSheetTitle(series[1], 1)); chart.plot(bar); + chart.setTitleText(chartTitle); // https://stackoverflow.com/questions/30532612 + // chart.setTitleOverlay(overlay); } private static void setColumnData(XWPFChart chart, String chartTitle) { Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFCategoryAxis.java Fri Oct 5 09:59:32 2018 @@ -79,6 +79,19 @@ public class XDDFCategoryAxis extends XD return new XDDFShapeProperties(properties); } + /** + * @since 4.0.1 + */ + @Override + public void setTitle(String text) { + if (!ctCatAx.isSetTitle()) { + ctCatAx.addNewTitle(); + } + XDDFTitle title = new XDDFTitle(null, ctCatAx.getTitle()); + title.setOverlay(false); + title.setText(text); + } + @Override public boolean isSetMinorUnit() { return false; 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=1842876&r1=1842875&r2=1842876&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 Fri Oct 5 09:59:32 2018 @@ -70,7 +70,6 @@ import org.openxmlformats.schemas.drawin import org.openxmlformats.schemas.drawingml.x2006.chart.CTSerAx; import org.openxmlformats.schemas.drawingml.x2006.chart.CTSurface; import org.openxmlformats.schemas.drawingml.x2006.chart.CTTitle; -import org.openxmlformats.schemas.drawingml.x2006.chart.CTTx; import org.openxmlformats.schemas.drawingml.x2006.chart.CTValAx; import org.openxmlformats.schemas.drawingml.x2006.chart.ChartSpaceDocument; import org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties; @@ -252,11 +251,27 @@ public abstract class XDDFChart extends if (!chart.isSetTitle()) { chart.addNewTitle(); } - CTTitle title = chart.getTitle(); - if (title.isSetOverlay()) { - title.getOverlay().setVal(overlay); + new XDDFTitle(this, chart.getTitle()).setOverlay(overlay); + } + + /** + * @since 4.0.1 + */ + public void setTitleText(String text) { + if (!chart.isSetTitle()) { + chart.addNewTitle(); + } + new XDDFTitle(this, chart.getTitle()).setText(text); + } + + /** + * @since 4.0.1 + */ + public XDDFTitle getTitle() { + if (chart.isSetTitle()) { + return new XDDFTitle(this, chart.getTitle()); } else { - title.addNewOverlay().setVal(overlay); + return null; } } @@ -271,15 +286,7 @@ public abstract class XDDFChart extends if (!chart.isSetTitle()) { return null; } - CTTitle title = chart.getTitle(); - if (!title.isSetTx()) { - return null; - } - CTTx tx = title.getTx(); - if (!tx.isSetRich()) { - return null; - } - return new XDDFTextBody(this, tx.getRich()); + return new XDDFTitle(this, chart.getTitle()).getBody(); } @Override Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartAxis.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartAxis.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartAxis.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFChartAxis.java Fri Oct 5 09:59:32 2018 @@ -57,6 +57,11 @@ public abstract class XDDFChartAxis impl public abstract XDDFShapeProperties getOrAddMinorGridProperties(); /** + * @since 4.0.1 + */ + public abstract void setTitle(String text); + + /** * @return true if minor unit value is defined, false otherwise */ public abstract boolean isSetMinorUnit(); Added: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFTitle.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFTitle.java?rev=1842876&view=auto ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFTitle.java (added) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFTitle.java Fri Oct 5 09:59:32 2018 @@ -0,0 +1,79 @@ +/* + * ==================================================================== + * 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.xddf.usermodel.text.TextContainer; +import org.apache.poi.xddf.usermodel.text.XDDFTextBody; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTTitle; +import org.openxmlformats.schemas.drawingml.x2006.chart.CTTx; + +/** + * @since 4.0.1 + */ +@Beta +public class XDDFTitle { + private final CTTitle title; + private final TextContainer parent; + + public XDDFTitle(TextContainer parent, CTTitle title) { + this.parent = parent; + this.title = title; + } + + public XDDFTextBody getBody() { + XDDFTextBody body; + if (title.isSetTxPr()) { + body = new XDDFTextBody(parent, title.getTxPr()); + } else { + if (!title.isSetTx()) { + title.addNewTx(); + } + CTTx tx = title.getTx(); + if (!tx.isSetRich()) { + tx.addNewRich(); + } + body = new XDDFTextBody(parent, tx.getRich()); + } + return body; + } + + public void setText(String text) { + if (!title.isSetLayout()) { + title.addNewLayout(); + } + getBody().setText(text); + } + + public void setOverlay(Boolean overlay) { + if (overlay == null) { + if (title.isSetOverlay()) { + title.unsetOverlay(); + } + } else { + if (title.isSetOverlay()) { + title.getOverlay().setVal(overlay); + } else { + title.addNewOverlay().setVal(overlay); + } + } + } + +} Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFValueAxis.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFValueAxis.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFValueAxis.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/chart/XDDFValueAxis.java Fri Oct 5 09:59:32 2018 @@ -78,6 +78,19 @@ public class XDDFValueAxis extends XDDFC return new XDDFShapeProperties(properties); } + /** + * @since 4.0.1 + */ + @Override + public void setTitle(String text) { + if (!ctValAx.isSetTitle()) { + ctValAx.addNewTitle(); + } + XDDFTitle title = new XDDFTitle(null, ctValAx.getTitle()); + title.setOverlay(false); + title.setText(text); + } + @Override public boolean isSetMinorUnit() { return ctValAx.isSetMinorUnit(); Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFParagraphProperties.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFParagraphProperties.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFParagraphProperties.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFParagraphProperties.java Fri Oct 5 09:59:32 2018 @@ -67,6 +67,16 @@ public class XDDFParagraphProperties { } } + /** + * @since 4.0.1 + */ + public XDDFRunProperties addDefaultRunProperties() { + if (!props.isSetDefRPr()) { + props.addNewDefRPr(); + } + return getDefaultRunProperties(); + } + public XDDFRunProperties getDefaultRunProperties() { if (props.isSetDefRPr()) { return new XDDFRunProperties(props.getDefRPr()); Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextBody.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextBody.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextBody.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextBody.java Fri Oct 5 09:59:32 2018 @@ -70,6 +70,19 @@ public class XDDFTextBody { return p; } + public void setText(String text) { + if (_body.sizeOfPArray() > 0) { + // remove all but first paragraph + for (int i = _body.sizeOfPArray() - 1; i > 0; i--) { + _body.removeP(i); + } + getParagraph(0).setText(text); + } else { + // as there were no paragraphs yet, initialize the text body + initialize().setText(text); + } + } + public XDDFTextParagraph addNewParagraph() { return new XDDFTextParagraph(_body.addNewP(), this); } Modified: poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextParagraph.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextParagraph.java?rev=1842876&r1=1842875&r2=1842876&view=diff ============================================================================== --- poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextParagraph.java (original) +++ poi/trunk/src/ooxml/java/org/apache/poi/xddf/usermodel/text/XDDFTextParagraph.java Fri Oct 5 09:59:32 2018 @@ -69,6 +69,24 @@ public class XDDFTextParagraph { _runs.add(new XDDFTextRun((CTRegularTextRun) xo, this)); } } + + addDefaultRunProperties(); + addAfterLastRunProperties(); + } + + public void setText(String text) { + // remove all runs + for (int i = _p.sizeOfBrArray() - 1; i >= 0; i--) { + _p.removeBr(i); + } + for (int i = _p.sizeOfFldArray() - 1; i >= 0; i--) { + _p.removeFld(i); + } + for (int i = _p.sizeOfRArray() - 1; i >= 0; i--) { + _p.removeR(i); + } + _runs.clear(); + appendRegularRun(text); } public String getText() { @@ -662,6 +680,13 @@ public class XDDFTextParagraph { } } + /** + * @since 4.0.1 + */ + public XDDFRunProperties addDefaultRunProperties() { + return getOrCreateProperties().addDefaultRunProperties(); + } + public XDDFRunProperties getDefaultRunProperties() { if (_p.isSetPPr()) { return getProperties().getDefaultRunProperties(); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org