如何在GWT的MVP模式中将新视图组件绑定到演示者?

时间:2011-08-24 10:35:12

标签: java design-patterns gwt mvp

我一直在阅读Large scale application development and MVP,我想知道你们如何在这种实施模式的方式中处理动态添加的组件。

假设您有一个表,每个表行中有三个按钮,并且可以动态添加表行。你们怎么建议将这些绑定到演示者?

新行如果遵循Google的建议结构,将在视图中生成,该视图没有与演示者的直接链接,也无法回调它(因此没有调用bindNewButtons(Button, Button, Button) - ish类型方法)。

那么,这里有什么好的做法?我在想,因为演示者将处理事件,该事件在视图内部的窗口小部件中添加一个新行(处理为,在视图中触发生成此新行的方法),我可以使用getRowButtons(int index)方法在视图中,然后使用它来检索组件并在添加它们之后绑定它们。

我确信有更聪明的方法可以做到这一点,所以我在这里寻求一些建议。

1 个答案:

答案 0 :(得分:2)

The second article in this series显示确实有一个对演示者的引用的视图。

观点:

private Presenter<T> presenter;

public void setPresenter(Presenter<T> presenter) {
    this.presenter = presenter;
}

主持人:

public interface Presenter<T> {
    void onAddButtonClicked();
    void onDeleteButtonClicked();
    void onItemClicked(T clickedItem);
    void onItemSelected(T selectedItem);
}

您现在可以在演示者界面中定义一个方法,该方法有一个参数,用于指示单击了哪一行。如果您不想让视图了解演示者界面,您可以随时选择在演示者可以响应的事件总线上触发事件。根据你的问题,第一个选项似乎是一个更合理的答案。