3

gwt-presenterを使用していますが、実際にはそれに固有の質問ではありません...

ユーザーが入ったテーブルがあります。ビューで(プレゼンターから提供されたデータから)テーブルを作成するときに、行の最後に2つのアクションボタン([編集]と[削除])を追加する必要があります。

クリックハンドラーをこれらのボタンに割り当てて、プレゼンターがどちらがクリックされたかを認識できるようにするための最良の方法は何ですか?これに先立って、ビューからプレゼンターにプライベートフィールドを渡し、そのボタンに個別のクリックハンドラーをアタッチすることができました。ただし、この方法はかなり厳密であり、このシナリオではうまく機能しません。

前もって感謝します。

4

1 に答える 1

3

ビューでクリックイベントの編集/削除のサブスクリプションを許可し、個々の行クリックイベントを内部的に登録してから、イベント処理をビューによって登録されたものに委任するのはどうですか?

私は次の疑似コードのようなものを意味します:

意見:

addRowEditClickHandler(ClickHandler handler) {
    this.rowEditClickHandler = handler; 
}
addRowDeleteClickHandler(ClickHandler handler) {
    this.rowDeleteClickHandler = handler; 
}

//... somewhere when setting up of the grid...

rowEditButton.addClickHandler = new ClickHandler() {
    onClick(args) {
        this.rowEditClickHandler.onClick(args)

}

rowDeleteButton.addClickHandler = new ClickHandler() {
    onClick(args) {
        this.rowDeleteClickHandler.onClick(args)

}

プレゼンター:

View view = new View();
view.addRowEditClickHandler( new ClickHandler() {
    onClick(args) {
        doSomething();
    }
});
view.addRowDeleteClickHandler( new ClickHandler() {
    onClick(args) {
        doSomething();
    }
});
于 2010-07-10T12:43:20.997 に答える