| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | <?phpnamespace PhpOffice\PhpSpreadsheet\Style;use PhpOffice\PhpSpreadsheet\IComparable;use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;abstract class Supervisor implements IComparable{    /**     * Supervisor?     *     * @var bool     */    protected $isSupervisor;    /**     * Parent. Only used for supervisor.     *     * @var Spreadsheet|Style     */    protected $parent;    /**     * Parent property name.     *     * @var null|string     */    protected $parentPropertyName;    /**     * Create a new Supervisor.     *     * @param bool $isSupervisor Flag indicating if this is a supervisor or not     *                                    Leave this value at default unless you understand exactly what     *                                        its ramifications are     */    public function __construct($isSupervisor = false)    {        // Supervisor?        $this->isSupervisor = $isSupervisor;    }    /**     * Bind parent. Only used for supervisor.     *     * @param Spreadsheet|Style $parent     * @param null|string $parentPropertyName     *     * @return Supervisor     */    public function bindParent($parent, $parentPropertyName = null)    {        $this->parent = $parent;        $this->parentPropertyName = $parentPropertyName;        return $this;    }    /**     * Is this a supervisor or a cell style component?     *     * @return bool     */    public function getIsSupervisor()    {        return $this->isSupervisor;    }    /**     * Get the currently active sheet. Only used for supervisor.     *     * @return Worksheet     */    public function getActiveSheet()    {        return $this->parent->getActiveSheet();    }    /**     * Get the currently active cell coordinate in currently active sheet.     * Only used for supervisor.     *     * @return string E.g. 'A1'     */    public function getSelectedCells()    {        return $this->getActiveSheet()->getSelectedCells();    }    /**     * Get the currently active cell coordinate in currently active sheet.     * Only used for supervisor.     *     * @return string E.g. 'A1'     */    public function getActiveCell()    {        return $this->getActiveSheet()->getActiveCell();    }    /**     * Implement PHP __clone to create a deep clone, not just a shallow copy.     */    public function __clone()    {        $vars = get_object_vars($this);        foreach ($vars as $key => $value) {            if ((is_object($value)) && ($key != 'parent')) {                $this->$key = clone $value;            } else {                $this->$key = $value;            }        }    }}
 |