我正在使用gwt开发一个UI,并且要求在子窗口小部件上执行某些操作时,父窗口小部件需要采取与此相对应的操作。
例如,我有一个主面板(父窗格),它有一个子窗口小部件列表。根据对任何子窗口小部件的更改,需要更新其他窗口小部件内容。
在这种情况下要遵循的正确设计是什么,即1个选项是: - 孩子捕捉到变化事件并自行更新。将事件引发到父窗口小部件,然后更新子窗口小部件。 - 其他替代方法是让父组件中的子组件具有更改处理程序,然后父组件可以将更改传播到其他组件。
答案 0 :(得分:1)
您只需要一个事件处理程序。例如:
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());
答案 1 :(得分:0)
我认为最好的选择是使用EventBus。简单解释如何使用它:http://tv.jetbrains.net/videocontent/gwt-event-bus-basics。 首先 - 定义子窗口小部件的事件。并由EventBus使用它们。看看这个答案:https://stackoverflow.com/a/6030379/904820
答案 2 :(得分:0)
您可以使用Child的UiHandlers以及Parent Widgets。请仔细阅读链接。 https://developers.google.com/web-toolkit/doc/latest/DevGuideUiHandlers