GWT UiBinders模块间的交互

GWT UiBinders模块间的交互,gwt,uibinder,interaction,Gwt,Uibinder,Interaction,我是GWT的新手,我希望这是一个简单的问题 想象一下,我制作了两个UIBinder模块或两个独立的小部件 一个是一组按钮ButtonPanel,另一个是当我按下前一个面板ImagePanel中的按钮时显示的图像,标签是图像的标题 当ButtonPanel中的按钮出现处理程序单击时,如何到达要启动的图像面板的wiget 感谢您的帮助。我不能说我完全理解您想要实现的目标,但一般来说,GUI应用程序中不同组件通信的最佳方式是使用eventbus模式。应用程序中有一个全局Eventbus对象,它允许组件

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

想象一下,我制作了两个UIBinder模块或两个独立的小部件

一个是一组按钮ButtonPanel,另一个是当我按下前一个面板ImagePanel中的按钮时显示的图像,标签是图像的标题

当ButtonPanel中的按钮出现处理程序单击时,如何到达要启动的图像面板的wiget


感谢您的帮助。

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


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

我建议您使用MVP模式进行开发,并在Presenter中添加所有事件

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

@UiHandler(value={"openButton"})
public void onOpenButtonClick(ClickEvent clickEvent){
      //ADD THE BUTTON LOGIC HERE
}
只需创建一个图像的对象&要加载的ImagePanel并将其添加到按钮上,然后单击使用此按钮