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($content, string $style): void
  155. {
  156. $this->badge = new MenuItemBadgeDto($content, trim($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. }