我有一个Vaadin标签菜单,每个标签当然包含不同的内容。现在,如果内容是具有动态生成内容的自有类,如果选择了选项卡,如何强制更新内容?
我的内容类implements View
,因此如果我使用enter(ViewChangeEvent event)
更改视图,则通常会触发Navigator
。
但是,我使用标签来更改内容,没有ViewChangeEvent
被解雇。
我怎么能触发选项卡特定视图内容的enter()
方法?
@VaadinComponent
@UIScope
public class MyView extends CssLayout implements View {
private Label label;
public MyView() {
label = new Label("empty");
}
@Override
public void enter(ViewChangeEvent event) {
label.setValue("entered");
}
}
@VaadinComponent
@UIScope
public class MyMenu extends CssLayout {
private TabSheet tabs;
public MyMenu() {
tabs = new TabSheet();
addComponent(tabs);
}
@Autowired
private MyView myview;
@PostConstruct
public void init() {
tabs.addComponent(myview);
//some more tabs
}
}
答案 0 :(得分:1)
您可以使用Shortcut Listener
之类的
component.addShortcutListener(new ShortcutListener("caption", KeyCode.ENTER, null) {
private static final long serialVersionUID = 1L;
@Override
public void handleAction(Object sender, Object target) {
label.setValue("entered");
}
});