12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer;
- class SpgrContainer
- {
- /**
- * Parent Shape Group Container.
- *
- * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer
- */
- private $parent;
- /**
- * Shape Container collection.
- *
- * @var array
- */
- private $children = [];
- /**
- * Set parent Shape Group Container.
- *
- * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent
- */
- public function setParent($parent)
- {
- $this->parent = $parent;
- }
- /**
- * Get the parent Shape Group Container if any.
- *
- * @return null|\PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer
- */
- public function getParent()
- {
- return $this->parent;
- }
- /**
- * Add a child. This will be either spgrContainer or spContainer.
- *
- * @param mixed $child
- */
- public function addChild($child)
- {
- $this->children[] = $child;
- $child->setParent($this);
- }
- /**
- * Get collection of Shape Containers.
- */
- public function getChildren()
- {
- return $this->children;
- }
- /**
- * Recursively get all spContainers within this spgrContainer.
- *
- * @return SpgrContainer\SpContainer[]
- */
- public function getAllSpContainers()
- {
- $allSpContainers = [];
- foreach ($this->children as $child) {
- if ($child instanceof self) {
- $allSpContainers = array_merge($allSpContainers, $child->getAllSpContainers());
- } else {
- $allSpContainers[] = $child;
- }
- }
- return $allSpContainers;
- }
- }
|