public function resize($x, $y)
    {
        if(!$x && !$y)
        {
            return;
        }

        $diagonalXCoord = $this->getDiagonalPoint()->getX() - $this->getPaddingRight();
        $firstXCoord = $this->getFirstPoint()->getX() + $this->getPaddingLeft();

        $this->getBoundary()->pointTranslate(1, $x, 0);
        $this->getBoundary()->pointTranslate(2, $x, $y);
        $this->getBoundary()->pointTranslate(3, 0, $y);
        
        $this->setHeight($this->getHeight() + $y);
        $this->setWidth($this->getWidth() + $x);

        foreach($this->getChildren() as $child)
        {
            if($child->getFloat() === Node::FLOAT_RIGHT)
            {
                $child->translate($x - $this->getPaddingRight(), 0);
            }
            else
            {
                $childDiagonalXCoord = $child->getDiagonalPoint()->getX() + $child->getMarginRight();
                $childFirstXCoord = $child->getFirstPoint()->getX();
    
                $relativeWidth = $child->getRelativeWidth();
    
                if($relativeWidth !== null)
                {
                    $relativeWidth = ($x + $diagonalXCoord - $firstXCoord)*((int) $relativeWidth)/100;
                    $childResize = (($childFirstXCoord + $relativeWidth) + $child->getMarginRight()) - $childDiagonalXCoord;
                }
                else
                {
                    $childResize = $x + ($diagonalXCoord - $childDiagonalXCoord);
                    $childResize = $childResize < 0 ? $childResize : 0;
                }
                
                if($childResize != 0)
                {
                    $child->resize($childResize, 0);
                }
            }
        }
    }