ava*_*ori 3 gwt double-click celltable
我正在尝试创建CellTable类型的GWT 捕获事件DoubleClickEvent,但是当在UI中单击行时CellTable正确接收类型的事件时,在双击该行时ClickEvent它看不到任何事件DoubleClickEvent.
因此,如果我单击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事件并将其视为a 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());
Akk*_*ekt 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());
您必须使用"ServiceTypeUI"替换T. 选择的值将是从用户中选择的对象.
| 归档时间: | 
 | 
| 查看次数: | 5495 次 | 
| 最近记录: |