MenuFactory::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.8333
c 0
b 0
f 0
cc 1
nc 1
nop 7
1
<?php
2
3
namespace eXpansion\Bundle\Menu\Plugins\Gui;
4
5
use eXpansion\Framework\Core\Model\Gui\ManialinkInterface;
6
use eXpansion\Framework\Core\Model\Gui\WidgetFactoryContext;
7
use eXpansion\Framework\Core\Plugins\Gui\WidgetFactory;
8
9
10
/**
11
 * Class MenuFactory
12
 *
13
 * @package eXpansion\Bundle\Menu\Plugins\Gui;
14
 * @author  oliver de Cramer <[email protected]>
15
 */
16
class MenuFactory extends WidgetFactory
17
{
18
    /** @var  MenuContentFactory */
19
    protected $menuContentFactory;
20
21
    /***
22
     * MenuFactory constructor.
23
     *
24
     * @param                      $name
25
     * @param                      $sizeX
26
     * @param                      $sizeY
27
     * @param null                 $posX
28
     * @param null                 $posY
29
     * @param WidgetFactoryContext $context
30
     * @param MenuContentFactory   $menuContentFactory
31
     */
32
    public function __construct(
33
        $name,
34
        $sizeX,
35
        $sizeY,
36
        $posX,
37
        $posY,
38
        WidgetFactoryContext $context,
39
        MenuContentFactory $menuContentFactory
40
    ) {
41
        parent::__construct($name, $sizeX, $sizeY, $posX, $posY, $context);
42
43
        $this->menuContentFactory = $menuContentFactory;
44
    }
45
46
    /**
47
     * @inheritdoc
48
     */
49
    protected function createContent(ManialinkInterface $manialink)
50
    {
51
        $button = $this->uiFactory->createButton('expansion_menu.menu_open')
52
            ->setAction($this->actionFactory->createManialinkAction($manialink, [$this, 'callbackShowMenu'], []));
53
        $button->setTranslate(true);
54
        $manialink->addChild($button);
55
    }
56
57
    /**
58
     * Callback to show the menu.
59
     *
60
     * @param $login
61
     */
62
    public function callbackShowMenu(ManialinkInterface $manialink, $login)
63
    {
64
        $this->menuContentFactory->create($login);
65
    }
66
67
}
68