我使用gwt来开发一个UI,并且要求在对子小部件执行某些操作的情况下,父小部件需要采取相应的操作。
例如,我有一个主面板(父窗格),其中包含一个子部件列表。根据对任何子小部件的更改,需要更新其他小部件内容。
在这种情况下,正确的设计是什么,即,1个选项是:- child捕获更改事件并自我更新。向父小部件引发事件,然后更新子小部件。-另一种选择是将子组件的更改处理程序放在父组件本身中,然后父组件可以将更改传播到其他组件。
发布于 2012-10-15 00:00:43
您只需要一个事件处理程序。例如:
ClickHandler h = new ClickHandler() {
public void onClick(ClickEvent event) {
Widget sender = (Widget) event.getSource();
if (sender == child1) {
// update child1
// update child 2
} else if (sender == child2) {
// update child2
// update child1
}
}
}
}
parent.addDomHandler(h, ClickEvent.getType());发布于 2012-10-14 23:05:48
我认为最好的选择是使用EventBus。简单解释如何使用它:http://tv.jetbrains.net/videocontent/gwt-event-bus-basics。首先-定义子小部件的事件。并通过EventBus使用它们。看看这个答案:https://stackoverflow.com/a/6030379/904820
发布于 2012-10-15 14:31:34
您可以使用子窗口小部件和父窗口小部件的UiHandlers。请浏览链接。https://developers.google.com/web-toolkit/doc/latest/DevGuideUiHandlers
https://stackoverflow.com/questions/12881637
复制相似问题