Слушатель на MenuBar в Ваадин

Я хочу добавить ClickListener к элементу панели меню в Vaadin.

Я знаю о нормальной ситуации, в которой я работал:

MenuBar menubar = new MenuBar();
menubar.addItem("Item", new MenuBar.Command() {

                    @Override
                    public void menuSelected(MenuItem selectedItem) {
                        //Do sth. when item is clicked
                    }
                });

В моем приложении я работаю с MVP, поэтому код, который должен выполняться, находится в другом классе, чем код, определяющий строку меню.

Есть ли способ добавить слушателя к определенному элементу в строке меню?

1 ответ

Решение

Когда вы добавляете элемент в свой MenuBar функция addItem(String,Command) на самом деле возвращает MenuItem который можно использовать позже. Вы можете сделать это:

MenuItem select = menuBar.addItem("Select", null);

И в другом контексте вы можете добавить слушателя на этом MenuItem как это:

select.setCommand(new Command() {

  @Override
  public void menuSelected(MenuItem selectedItem) {
    System.out.println("You clicked on "+selectedItem.getText());
  }
});
Другие вопросы по тегам