У меня есть панель навигации, которая является компонентом GWT MenuBar, который имеет другие панели меню со своими собственными MenuItems. Точно так же, как http://samples.gwtproject.org/samples/Showcase/Showcase.html#!CwMenuBarЗакрыть элементы навигационной панели GWT (MenuBar), когда фокус потерян
GWT MenuBar открывает панель меню каскада, когда вы наводите на нее курсор (если у вас есть .setAutoOpen (true)). Я хотел бы создать эффект, который меню закрывает, когда вы перестаете зависать (потому что я нахожу, что это раздражает, что меню остается открытым только потому, что я случайно завис над ним, например).
Я прочитал столько, сколько смог найти в Google. Я пытался делать что-то вроде
myMenuBar.addHandler(new BlurHandler() {
@Override
public void onBlur(BlurEvent event) {
myMenuBar.closeAllChildren(true);
}
}, BlurEvent.getType());
(ONBLUR должен быть противоположен OnFocus) только чтобы обнаружить, что MenuBar теряет фокус, когда я парить над своими детьми (так что я ничего не могу выбрать, потому что главный MenuBar теряет фокус и он закрывается, делая навигационную панель бесполезной), но раздражающе, она не потеряет фокус, если я нахожусь где-нибудь еще (верх, стороны и т. д., вероятно, потому, что нет других компонентов, чтобы украсть фокус), оставив каскадное меню открытым ,
Я пробовал использовать .setFocusOnHoverEnabled (false), но без фокуса Я не знаю, когда я не вишу над MenuBar или его MenuItems.
Я начинаю думать, что я не могу переопределить это поведение с помощью GWT MenuBar (меню в JavaScript может вести себя таким образом, закрывая каскадное меню, когда вы перестаете нависнуть над ним, но так как GWT пишет этот JS-код для меня, я думаю, что цена за оплату заключается в том, что она будет вести себя таким образом ...), поэтому, пожалуйста, любой совет о том, как это сделать с GWT или подтвердить это невозможно, оценивается.