我正在尝试在vaadin 7中创建一个CustomComponent
。该组件的VerticalLayout
方法中设置了setCompositionRoot()
,并且在该VerticalLayout
中设置了一些Labels和其他布局。在主视图类中实现我的自定义组件,我希望能够处理对我的自定义组件的单击,这意味着将VerticalLayout
作为组合根元素:
MyCustomComponent component = new MyCustomComponent();
component.addOnClickListener(listener);
但是没有像
addOnClickListener
这样的方法可用。如何实现该功能?我知道我可以在自定义组件中处理带有LayoutClickListener
的布局单击,但是还有一种方法可以设置声明组件的侦听器,例如在主视图类中(类似于上面的代码片段)? 最佳答案
创建一个名为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);
}