响应单击Vaadin表行的特定列

时间:2013-10-01 16:07:28

标签: vaadin vaadin7

我是Vaadin的新手。 我有三种不同的看法。 View1有一个包含column1,column2的表。对于特定的表行,当我单击column1时,我想导航到view2,当我点击column2时,我希望能够导航到view3。我可以使用ValueChanged事件作为整体响应行单击。但我如何处理单击行的特定列? 我处理行单击的方式如下

summaryTable.addValueChangeListener(new Property.ValueChangeListener() {
    @Override
    public void valueChange(Property.ValueChangeEvent event) {
        String provider = summaryTable.getContainerProperty(summaryTable.getValue(), "provider").toString();
        UI.getCurrent().getNavigator().navigateTo(ViewsEnum.PROVIDERS.viewName()+"/"+provider);
    }
});

请帮忙

1 个答案:

答案 0 :(得分:5)

下面代码中的逻辑给了我点击的列。我在valueChange()中使用selectedColumn的值来确定我想要导航到哪个View。

summaryTable.addItemClickListener(new ItemClickEvent.ItemClickListener() {
    @Override
    public void itemClick(ItemClickEvent event) {
        // TODO Auto-generated method stub
        selectedColumn = (String)event.getPropertyId();
    }
});

不确定这是否是正确的方法,或者只是一个黑客攻击。 我相信有更好的方法。请提出建议!