Построение меню по xml.
Формат XML:
<menu> - описывает меню / под меню
Атрибуты / дочерние тэги:
text - отображаемый текст
id - идентификатор
Дочерние тэги:
line, action, menu
Пример:
<menu id="root">
<menu text="file">
<action name="file.open"></action>
<line />
<action name="exit"></action>
</menu>
</menu>
<line> - горизонтальная линия
<action> - описывает действие
Обязательный один из указанных атрибутов / дочерние тэги:
name - имя действия, если указано, то будет зайдствовано свойств actionByNameResolver для поиска соответ. действия
class - имя java класса, будет создан соответ экзмепляр
onclick - скрипт который будет вызван для соот. пунктв. Использует actionByOnClickResolver для поиска соответ. действия
Не обязательные атрибуты / дочерние тэги:
onshow - скрипт который будет вызван при отображении меню
target - Цель. Скрипт может быть выполнен без всякой цели, или с определенной целю.
Под целю понимается текущий выделенный (сфокусированный javax.swing.FocusManager)
объект оопределенного класса.
targetVar - Имя переменной в скрипте которая указывает на цель.
По умолчанию - target
actionVar - Имя переменной в скрипте которая на объект javax.swing.Action для данного пункта меню.
По умолчанию - action
language / lang - Язык скрипта, по умолчанию JavaScript. Будет передан в actionByOnClickResolver
id - Идентификатор
text - Текст пункта меню
type - тип меню, возможные след. варианты: Default или Checked
desc / shortDesc / title - краткое описание
desc / longDesc - полное описание
key / keyStroke - Комбинация клавиш
ico / icoSmall - Малельная иконка
ico / icoLarge - Большая иконка
iterableTargets - По умолчанию true, - выполнять action (onclick) для каждого элемента
Дочерние тэги: keys
<keys> - описывает комбинации клавиш
Не обязательные атрибуты / дочерние тэги:
key / keyStroke - Комбинация клавиш
target - Окно/Объект (Класс) владеющее фокусом
Комбинация клаиш
Описывается так:
Комбинация клаиш := модификатор* (typedID | pressedReleasedID)
модификатор := shift | control | ctrl | meta | alt | altGraph
typedID := typed typedKey
typedKey := Строка из одного Unicode символа
pressedReleasedID := (pressed | released) key
key := имя KeyEvent, т.е. имя следующее за "VK_"