如何在选择更改时更新vaadin选项卡中的内容?

时间:2014-05-19 08:55:44

标签: java vaadin vaadin4spring vaadin-navigator

我有一个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
    }
}

1 个答案:

答案 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");
    }
});