3

CellTableGWTにタイプのイベントをキャッチさせようとしていますが、UIで行がクリックされたときにタイプのイベントを正しく受信しますが、行がダブルクリックされたときに何も表示されDoubleClickEventませCellTableん。ClickEventDoubleClickEvent

したがって、UIで行をクリックすると、宣言されたハンドラーClickEventが正しくトリガーされますが、ダブルクリックすると、宣言されたハンドラーはDoubleClickEventトリガーされません

私は何か間違ったことをしているのですか、それともCellTableそれ自体がまったく処理できないDoubleClickEventのですか?後者の場合、テーブルのダブルクリックをキャプチャするための良い方法は何でしょうか?

以下に、私のCellTable宣言のコードを示します。

CellTable<ServiceTypeUI> contentTable = new CellTable<ServiceTypeUI>(10, style);
contentTable.setSelectionModel(new SingleSelectionModel<ServiceTypeUI>());
contentTable.addHandler(new DoubleClickHandler() { // HANDLER NOT CORRECTLY TRIGGERED
   @Override
   @SuppressWarnings("unchecked")
   public void onDoubleClick(DoubleClickEvent event) {
       presenter.doubleClickHandler(event);
   }

}, DoubleClickEvent.getType());
contentTable.addHandler(new ClickHandler() { // HANDLER CORRECTLY TRIGGERED
   @Override
   @SuppressWarnings("unchecked")
   public void onClick(ClickEvent event) {
       presenter.clickHandler(event);
   }

}, ClickEvent.getType());

ClickEventまた、ハンドラー宣言と宣言を削除して、イベントをSelectionModelキャプチャしてDoubleClickEventイベントとして処理しないようにしましたClickEventが、この場合でもDoubleClickHandlerはトリガーされませんでした。

CellTable<ServiceTypeUI> contentTable = new CellTable<ServiceTypeUI>(10, style);
contentTable.addHandler(new DoubleClickHandler() { // HANDLER NOT CORRECTLY TRIGGERED
   @Override
   @SuppressWarnings("unchecked")
   public void onDoubleClick(DoubleClickEvent event) {
       presenter.doubleClickHandler(event);
   }

}, DoubleClickEvent.getType());
4

1 に答える 1

10
       SingleSelectionModel<T> selectionModel
     = new SingleSelectionModel<T>();

   cellTable.setSelectionModel(selectionModel);
   cellTable.addDomHandler(new DoubleClickHandler() {

        @Override
        public void onDoubleClick(final DoubleClickEvent event) {
            T selected = selectionModel
                    .getSelectedObject();
            if (selected != null) {
                //DO YOUR STUFF

                                  }

        }
    }, 
    DoubleClickEvent.getType());

Tを「ServiceTypeUI」に置き換える必要があります。選択された値は、ユーザーから選択されたオブジェクトになります。

于 2012-10-22T12:46:23.133 に答える