1

私は 1 つの UI を開発するために gwt を使用していますが、子ウィジェットでいくつかのアクションが発生した場合、親ウィジェットはそれに対応するアクションを実行する必要があるという要件があります。

たとえば、子ウィジェットのリストを持つメイン パネル (親ペイン) があります。子ウィジェットへの変更に基づいて、他のウィジェット コンテンツを更新する必要があります。

この場合に従うべき正しい設計は何ですか。つまり、1 つのオプションは次のとおりです。 - 子は変更イベントをキャッチし、それ自体を更新します。親ウィジェットにイベントを発生させ、子ウィジェットを更新します。- 別の方法として、親自体に子コンポーネントの変更ハンドラを配置し、親が変更を他のコンポーネントに伝達できるようにすることもできます。

4

3 に答える 3

1

必要なイベントハンドラーは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());
于 2012-10-14T16:00:43.063 に答える
0

EventBusを使用するのが最善の選択だと思います。使い方の簡単な説明:http://tv.jetbrains.net/videocontent/gwt-event-bus-basics。最初に-子ウィジェットのイベントを定義します。そして、EventBusでそれらを使用します。この答えを見てください:https ://stackoverflow.com/a/6030379/904820

于 2012-10-14T15:05:47.600 に答える
0

親ウィジェットだけでなく、子の UiHandlers も利用できます。リンクをたどってください。 https://developers.google.com/web-toolkit/doc/latest/DevGuideUiHandlers

于 2012-10-15T06:31:34.087 に答える