GWT UiBinders模块之间的交互

时间:2012-03-15 09:59:23

标签: gwt uibinder interaction

我是GWT的新手,这应该是一个我希望的简单问题。

想象一下,我制作了两个Uibinders模块或两个独立的小部件。(这是一个揭示我问题的简化示例)

一个是一组按钮(ButtonPanel),当我按下上一个面板(ImagePAnel)中的一个按钮时,显示另一个图像,标签是图像的标题。

当(ButtonPanel)中的按钮点击处理程序时,如何触及imagePanel以启动wiget

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

我不能说我完全理解你要完成的是什么,但总的来说,GUI应用程序中不同组件进行通信的最佳方式是使用eventbus模式。应用程序中有一个全局Eventbus对象,它允许组件订阅从应用程序中的任何位置触发的指定类型的事件。这样就可以避免意大利面条代码,并且组件松散耦合。

http://code.google.com/webtoolkit/articles/mvp-architecture.html#events

答案 1 :(得分:0)

我通常创建第三个组件,它是您定义的Button和Image组件的容器。该组件将自身设置为两者的回调,并包含集成两者的逻辑。

答案 2 :(得分:0)

我建议您使用MVP Pattern for Development并在Presenter中添加所有事件。

或者您也可以在UIBinder的Java文件中使用以下技术

@UiHandler(value={"openButton"})
public void onOpenButtonClick(ClickEvent clickEvent){
      //ADD THE BUTTON LOGIC HERE
}

只需创建图像的对象&要加载的ImagePanel并使用此按钮单击按钮添加它。