Skip to content

Commit 8e2c78e

Browse files
committed
#272 : ODPresentation Writer : Show/Hide Value / Name / Series Name in Chart
1 parent 2c4b35d commit 8e2c78e

File tree

3 files changed

+67
-1
lines changed

3 files changed

+67
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- PowerPoint2007 Writer : Support of margins in cell in table - @carlosafonso @Progi1984 GH-273 GH-315
1313

1414
### Features
15+
- ODPresentation Writer : Show/Hide Value / Name / Series Name in Chart - @Progi1984 GH-272
1516
- PowerPoint2007 Writer : Implement character spacing - @jvanoostrom GH-301
1617

1718
## 0.7.0 - 2016-09-12

src/PhpPresentation/Writer/ODPresentation/ObjectsChart.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,20 @@ private function writeSeriesStyle(Chart $chart, Chart\Series $series)
651651
$this->xmlContent->writeAttribute('style:family', 'chart');
652652
// style:chart-properties
653653
$this->xmlContent->startElement('style:chart-properties');
654-
$this->xmlContent->writeAttribute('chart:data-label-number', 'value');
654+
if ($series->hasShowValue()) {
655+
if ($series->hasShowPercentage()) {
656+
$this->xmlContent->writeAttribute('chart:data-label-number', 'value-and-percentage');
657+
} else {
658+
$this->xmlContent->writeAttribute('chart:data-label-number', 'value');
659+
}
660+
} else {
661+
if ($series->hasShowPercentage()) {
662+
$this->xmlContent->writeAttribute('chart:data-label-number', 'percentage');
663+
}
664+
}
665+
if ($series->hasShowCategoryName()) {
666+
$this->xmlContent->writeAttribute('chart:data-label-text', 'true');
667+
}
655668
$this->xmlContent->writeAttribute('chart:label-position', 'center');
656669
if ($chartType instanceof AbstractTypePie) {
657670
$this->xmlContent->writeAttribute('chart:pie-offset', $chartType->getExplosion());

tests/PhpPresentation/Tests/Writer/ODPresentation/ObjectsChartTest.php

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,4 +666,56 @@ public function testTypeScatterSeriesOutline()
666666
$this->assertZipXmlAttributeExists('Object 1/content.xml', $expectedElement, 'svg:stroke-color');
667667
$this->assertZipXmlAttributeEquals('Object 1/content.xml', $expectedElement, 'svg:stroke-color', '#' . $oColor->getRGB());
668668
}
669+
670+
public function testSeries()
671+
{
672+
$oSeries = new Series('Series', array('Jan' => 1, 'Feb' => 5, 'Mar' => 2));
673+
$oPie = new Pie();
674+
$oPie->addSeries($oSeries);
675+
$oChart = $this->oPresentation->getActiveSlide()->createChartShape();
676+
$oChart->getPlotArea()->setType($oPie);
677+
678+
$element = '/office:document-content/office:automatic-styles/style:style[@style:name=\'styleSeries0\']/style:chart-properties';
679+
680+
// $showCategoryName = false / $showPercentage = false / $showValue = true
681+
$this->assertZipXmlElementExists('Object 1/content.xml', $element);
682+
$this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-number');
683+
$this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'value');
684+
$this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text');
685+
686+
$oSeries->setShowValue(false);
687+
$this->resetPresentationFile();
688+
689+
// $showCategoryName = false / $showPercentage = false / $showValue = false
690+
$this->assertZipXmlElementExists('Object 1/content.xml', $element);
691+
$this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-number');
692+
$this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text');
693+
694+
// $showCategoryName = false / $showPercentage = true / $showValue = true
695+
$oSeries->setShowValue(true);
696+
$oSeries->setShowPercentage(true);
697+
$this->resetPresentationFile();
698+
699+
$this->assertZipXmlElementExists('Object 1/content.xml', $element);
700+
$this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-number');
701+
$this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'value-and-percentage');
702+
$this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text');
703+
704+
// $showCategoryName = false / $showPercentage = true / $showValue = false
705+
$oSeries->setShowValue(false);
706+
$this->resetPresentationFile();
707+
708+
$this->assertZipXmlElementExists('Object 1/content.xml', $element);
709+
$this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-number');
710+
$this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-number', 'percentage');
711+
$this->assertZipXmlAttributeNotExists('Object 1/content.xml', $element, 'chart:data-label-text');
712+
713+
// $showCategoryName = false / $showPercentage = true / $showValue = false
714+
$oSeries->setShowCategoryName(true);
715+
$this->resetPresentationFile();
716+
717+
$this->assertZipXmlElementExists('Object 1/content.xml', $element);
718+
$this->assertZipXmlAttributeExists('Object 1/content.xml', $element, 'chart:data-label-text');
719+
$this->assertZipXmlAttributeEquals('Object 1/content.xml', $element, 'chart:data-label-text', 'true');
720+
}
669721
}

0 commit comments

Comments
 (0)