vendor/easycorp/easyadmin-bundle/src/Dto/MenuItemDto.php line 8

Open in your IDE?
  1. <?php
  2. namespace EasyCorp\Bundle\EasyAdminBundle\Dto;
  3. /**
  4.  * @author Javier Eguiluz <javier.eguiluz@gmail.com>
  5.  */
  6. final class MenuItemDto
  7. {
  8.     public const TYPE_CRUD 'crud';
  9.     public const TYPE_URL 'url';
  10.     public const TYPE_SECTION 'section';
  11.     public const TYPE_EXIT_IMPERSONATION 'exit_impersonation';
  12.     public const TYPE_DASHBOARD 'dashboard';
  13.     public const TYPE_LOGOUT 'logout';
  14.     public const TYPE_SUBMENU 'submenu';
  15.     public const TYPE_ROUTE 'route';
  16.     private $type;
  17.     private $index;
  18.     private $subIndex;
  19.     private $label;
  20.     private $icon;
  21.     private $cssClass;
  22.     private $permission;
  23.     private $routeName;
  24.     private $routeParameters;
  25.     private $linkUrl;
  26.     private $linkRel;
  27.     private $linkTarget;
  28.     private $translationParameters;
  29.     /** @var MenuItemBadgeDto|null */
  30.     private $badge;
  31.     /** @var MenuItemDto[] */
  32.     private $subItems;
  33.     public function __construct()
  34.     {
  35.         $this->cssClass '';
  36.         $this->translationParameters = [];
  37.         $this->linkRel '';
  38.         $this->linkTarget '_self';
  39.         $this->badge null;
  40.         $this->subItems = [];
  41.     }
  42.     public function getType(): string
  43.     {
  44.         return $this->type;
  45.     }
  46.     public function setType(string $type): void
  47.     {
  48.         $this->type $type;
  49.     }
  50.     public function getIndex(): int
  51.     {
  52.         return $this->index;
  53.     }
  54.     public function setIndex(int $index): void
  55.     {
  56.         $this->index $index;
  57.     }
  58.     public function getSubIndex(): int
  59.     {
  60.         return $this->subIndex;
  61.     }
  62.     public function setSubIndex(int $subIndex): void
  63.     {
  64.         $this->subIndex $subIndex;
  65.     }
  66.     public function getLabel(): string
  67.     {
  68.         return $this->label;
  69.     }
  70.     public function setLabel(string $label): void
  71.     {
  72.         $this->label $label;
  73.     }
  74.     public function getIcon(): ?string
  75.     {
  76.         return $this->icon;
  77.     }
  78.     public function setIcon(?string $icon): void
  79.     {
  80.         $this->icon $icon;
  81.     }
  82.     public function getLinkUrl(): ?string
  83.     {
  84.         return $this->linkUrl;
  85.     }
  86.     public function setLinkUrl(?string $linkUrl): void
  87.     {
  88.         $this->linkUrl $linkUrl;
  89.     }
  90.     public function getRouteName(): ?string
  91.     {
  92.         return $this->routeName;
  93.     }
  94.     public function setRouteName(?string $routeName): void
  95.     {
  96.         $this->routeName $routeName;
  97.     }
  98.     public function getRouteParameters(): ?array
  99.     {
  100.         return $this->routeParameters;
  101.     }
  102.     public function setRouteParameter(string $parameterName$parameterValue): void
  103.     {
  104.         $this->routeParameters[$parameterName] = $parameterValue;
  105.     }
  106.     public function setRouteParameters(?array $routeParameters): void
  107.     {
  108.         $this->routeParameters $routeParameters;
  109.     }
  110.     public function getPermission(): ?string
  111.     {
  112.         return $this->permission;
  113.     }
  114.     public function setPermission(?string $permission): void
  115.     {
  116.         $this->permission $permission;
  117.     }
  118.     public function getCssClass(): string
  119.     {
  120.         return $this->cssClass;
  121.     }
  122.     public function setCssClass(string $cssClass): void
  123.     {
  124.         $this->cssClass $cssClass;
  125.     }
  126.     public function getLinkRel(): string
  127.     {
  128.         return $this->linkRel;
  129.     }
  130.     public function setLinkRel(string $linkRel): void
  131.     {
  132.         $this->linkRel $linkRel;
  133.     }
  134.     public function getLinkTarget(): string
  135.     {
  136.         return $this->linkTarget;
  137.     }
  138.     public function setLinkTarget(string $linkTarget): void
  139.     {
  140.         $this->linkTarget $linkTarget;
  141.     }
  142.     public function getTranslationParameters(): array
  143.     {
  144.         return $this->translationParameters;
  145.     }
  146.     public function setTranslationParameters(array $translationParameters): void
  147.     {
  148.         $this->translationParameters $translationParameters;
  149.     }
  150.     public function getBadge(): ?MenuItemBadgeDto
  151.     {
  152.         return $this->badge;
  153.     }
  154.     public function setBadge($contentstring $style): void
  155.     {
  156.         $this->badge = new MenuItemBadgeDto($contenttrim($style));
  157.     }
  158.     /**
  159.      * @return MenuItemDto[]
  160.      */
  161.     public function getSubItems(): array
  162.     {
  163.         return $this->subItems;
  164.     }
  165.     /**
  166.      * @param MenuItemDto[] $subItems
  167.      */
  168.     public function setSubItems(array $subItems): void
  169.     {
  170.         $this->subItems $subItems;
  171.     }
  172.     public function hasSubItems(): bool
  173.     {
  174.         return self::TYPE_SUBMENU === $this->type && \count($this->subItems) > 0;
  175.     }
  176.     public function isMenuSection(): bool
  177.     {
  178.         return self::TYPE_SECTION === $this->type;
  179.     }
  180. }