Hello,
I have a menuButton with menu. Just like its done in browser, menuButton should be selected while a menu is opened.
To implement it, my MenuButton should know if menu is hidden, to change its state.
How menuButton can know if its menu is hidden? I tried overriding Menu.hide() function, from there I notify a menuButton "listener". However, hide() isn't invoked when user opens a menu, and then clicks outside it.
I use smartGWT 2.1, below is my code (it uses event listeners to select / unselect a menuButton):
thank you
I have a menuButton with menu. Just like its done in browser, menuButton should be selected while a menu is opened.
To implement it, my MenuButton should know if menu is hidden, to change its state.
How menuButton can know if its menu is hidden? I tried overriding Menu.hide() function, from there I notify a menuButton "listener". However, hide() isn't invoked when user opens a menu, and then clicks outside it.
I use smartGWT 2.1, below is my code (it uses event listeners to select / unselect a menuButton):
Code:
//add listeners to hide/show menu
menu.addMouseOutHandler(new MouseOutHandler() {
public void onMouseOut(MouseOutEvent event) {
menuButton.setSelected(false);
menu.hide();
}
});
menu.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
menuButton.setSelected(false);
}
});
menuButton.addMouseDownHandler(new MouseDownHandler() {
public void onMouseDown(MouseDownEvent event) {
menuButton.setSelected(true);
//unselect the rest
menu.showNextTo(menuButton, "bottom");
}
});
//menuImpl class - to override hide()
public class MenuImpl extends Menu {
private MenuButton eventHandler;
public void setListener(MenuButton button){
eventHandler = button;
}
public void hide(){
super.hide();
eventHandler.setSelected(false);
}
}
thank you
Comment