GXT3 の質問:
グリッド上の行を選択したときに、これら 2 つのハンドラーがトリガーされない理由を知っている人はいますか? SelectionModel は GridSelectionModel であり、単一選択に設定されています。
更なる宣言はありますか?これと同じくらい簡単ですね。GXT 2.2 ではイベント リスナーを追加するのに問題はありませんでしたが、GXT 3 ではいくつかの変更があります。これらのイベントは、行の選択を検出するためのものですよね。
SelectionChangedHandler<Summary> gridSelectionChangedHandler =
new SelectionChangedHandler<Summary>() {
public void onSelectionChanged(
SelectionChangedEvent<Summary> event) {
Summary rec = event.getSelection().get(0);
Window.alert("Row = "+ rec.getId());
}
};
SelectionHandler<Summary> gridSelectionHandler =
new SelectionHandler<Summary>() {
public void onSelection(SelectionEvent<Summary> event) {
Summary rec = event.getSelectedItem();
Window.alert("Row = "+ rec.getId());
}
};
public SummaryViewImpl() {
uiBinder.createAndBindUi(this);
this.grid.addSelectionChangedHandler(gridSelectionChangedHandler);
this.grid.addSelectionHandler(gridSelectionHandler);
}
ただし、以下が起動しているため、RowClickEvent に問題はありません。
@UiHandler({ "grid" })
void onRowClick(RowClickEvent event){
int row = event.getRowIndex();
Window.alert("Row = "+ row);
}
grid は SummaryGrid のインスタンスです。
public class SummaryGrid
extends Grid<Summary>{
{
this.sm = new GridSelectionModel<Summary>();
this.sm.setSelectionMode(SelectionMode.SINGLE);
}
blah ... blah ...
public HandlerRegistration addSelectionChangedHandler(SelectionChangedHandler<Summary> handler){
return this.getSelectionModel().addSelectionChangedHandler(handler);
}
public HandlerRegistration addSelectionHandler(SelectionHandler<Summary> handler){
return this.getSelectionModel().addSelectionHandler(handler);
}
blah ... blah ...
}