在Vaadin中为CustomComponent创建侦听器

时间:2016-01-09 11:34:11

标签: java vaadin observer-pattern vaadin7

我正在尝试在vaadin 7中创建CustomComponent。该组件在其VerticalLayout方法中设置了setCompositionRoot(),并且在{{1}内设置了一些标签和其他布局}}。在主视图类中实现我的自定义组件我希望能够处理我的自定义组件的点击,这意味着VerticalLayout作为组合根元素:

VerticalLayout

但是没有类似MyCustomComponent component = new MyCustomComponent(); component.addOnClickListener(listener); 的方法可用。我该如何实现该功能?我知道我可以在自定义组件中使用addOnClickListener处理布局上的单击,但是还有一种方法可以设置侦听器,声明组件的位置,例如在主视图类中(类似于上面的代码片段)?

1 个答案:

答案 0 :(得分:1)

创建自己的方法,就像命名为addOnClickListener一样,将其作为参数LayoutClickListener。在addOnClickListener的实现中,您将侦听器添加到布局中。例如:

component.addOnClickListener(new LayoutClickListener() {

            @Override
            public void layoutClick(LayoutClickEvent event) {
                // TODO Auto-generated method stub

            }
        });

和component.addOnClickListener的实现:

public void addOnClickListener(LayoutClickListener listener){
    yourVerticalLayout.addLayoutClickListener(listener);
}