我有一些关于GWT(2.1)与MVP和事件有关的问题。使用LayoutPanels GWT中的事件处理
获得了DockLayoutPanel及其中的一些组件。西部有一个Tree组件,中央有一个SimplePanel。每个组件都有一个演示者和一个视图。问题是我想处理其演示者类中的组件事件,但现在它们只能在DockLayoutPanelPresenter的容器中捕获。我想在TreePresenter中处理树的事件。我认为TreePresenter应该处理它的'SelectedItem'事件,并且它可以将它放到事件总线上,以便其他组件可以对它做出反应。
有没有其他人面对过这个?张贴在GWT组列表上,但没有得到回复。我认为这是解耦组件的重要主题。
你能澄清你的设计多一点吗?所以,你有一个TreePresenter,并且你附加了一棵Tree作为它的一个视图。视图部分抛出一个事件,并且你想要在演示者中捕获该事件?当你说它只能在容器中捕获时,你是什么意思? – igorbel 2010-07-13 22:02:33
我在这个线程中打了一个相当广泛的答案,我解释了我在gwt应用程序中如何解决这个问题。也许这可以帮助你? http://stackoverflow.com/questions/2832779/is-there-a-recommended-way-to-use-the-observer-pattern-in-mvp-using-gwt/2832919#2832919 – 2010-11-09 22:08:37
Banang已经给你最好的回答,恕我直言。使用事件总线来使UI代码的不同部分彼此协作,而不必相互了解。事件总线唯一的*潜在*问题是要有一个非常健谈的应用程序,即太多的事件被解雇,太多的处理程序不得不做出响应。一旦你到达那里,就担心这个问题。 – 2011-03-13 19:29:55