Menu

Диджит Menu моделирует контекстное меню, подобное тому, что появляется, если щелкнуть правой кнопкой мыши на ярлыке приложения или на поверхности рабочего стола. Диджит Menu содержит в себе виджеты MenuItem, являющиеся обычными пунктами меню, которые можно выбирать, или виджеты PopupMenuItem, образующие еще один слой элементов меню (напоминая меню кнопки Пуск (Start) в операционной системе Windows). Дочерним для PopupMenuItem является другой диджит Menu. Теоретически с помощью диджитов PopupMenuItem и MenuItem можно было бы реализовать иерархические меню любой степени вложенности, хотя такое решение нельзя назвать мудрым с точки зрения простоты и удобства.

Для начала рассмотрим простое меню, состоящее только из диджитов MenuItem, как показано в примере 15.4.
Пример 15.4. Пример типичного использования диджита Menu
(body class="tundra")


foo


bar


baz



(/body)

Как видите, в разметке приходится делать совсем немного, что только упрощает возможность использования меню.


Единственное, на что следует обратить внимание, это строка, где значение атрибута стиля display устанавливается равным none, – это очень важно, потому что без этого ваше меню будет видимо изначально.

Теперь предположим, что нам необходимо, чтобы пункт baz был реализован диджитом PopupMenuItem, а само меню было бы контекстным для всего окна. Сделать это можно, как показано ниже:
contextualMenuForWindow="true">
foo


bar


baz
для каждого элемента YY>
yabba

dabba

doo





Хотелось бы надеяться, что самой хитрой для вас частью в установке PopupMenuItem оказалась необходимость явного определения первого дочернего узла, играющего роль заголовка.

В завершение раздела о Menu в табл.


15.6 приводится перечень особенностей, составляющих программный интерфейс диджита. Обратите внимание, что, будучи наследником класса _Container, диджит Menu имеет ключевые методы добавления, удаления и получения дочерних элементов, так же как Toolbar и другие подобные диджиты.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
ColorPalette
Dialog
Editor
InlineEditBox
ProgressBar

Вернуться в раздел: Dojo / Виджеты приложения