Completed
Push — master ( 82efd5...5f5ed3 )
by
unknown
14s
created

MenuFactory::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

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