Completed
Pull Request — master (#130)
by De Cramer
02:47
created

Window::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 17
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 17
rs 9.4285
cc 1
eloc 13
nc 1
nop 8

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
namespace eXpansion\Framework\Core\Model\Gui;
4
5
use eXpansion\Framework\Core\Exceptions\Gui\MissingCloseActionException;
6
use eXpansion\Framework\Core\Helpers\Translations;
7
use eXpansion\Framework\Core\Model\Gui\Factory\WindowFrameFactory;
8
use eXpansion\Framework\Core\Model\UserGroups\Group;
9
use FML\Controls\Control;
10
use FML\Types\Container;
11
12
class Window extends Widget implements Container
13
{
14
    /** @var Control  */
15
    protected $closeButton;
16
17
    public function __construct(
18
        Group $group,
19
        Translations $translationHelper,
20
        WindowFrameFactory $windowFrameFactory,
21
        $name,
22
        $sizeX,
23
        $sizeY,
24
        $posX = null,
25
        $posY = null
26
    ) {
27
        parent::__construct($group, $translationHelper, $name, $sizeX, $sizeY, $posX, $posY);
28
29
        $this->translationHelper = $translationHelper;
30
31
        $windowFrameFactory->setManialinkInterface($this);
32
        $this->closeButton = $windowFrameFactory->build($this->manialink, $this->windowFrame, $name, $sizeX, $sizeY);
33
    }
34
35
    /**
36
     * Set action to close the window.
37
     *
38
     * @param $actionId
39
     */
40
    public function setCloseAction($actionId)
41
    {
42
        $this->closeButton->addDataAttribute('action', $actionId);
43
    }
44
45
    public function getXml()
46
    {
47
        return parent::getXml();
48
    }
49
}
50