2015-11-25 8 views
0

Мы внедрили виджет пользовательских таблиц GWT в нашем приложении, расширив com.google.gwt.user.client.ui.Composite. В этой таблице есть обработчик с двойным щелчком, который открывает всплывающее окно для редактирования выбранной записи.GWT добавить обработчик двойного щелчка только для строк таблицы, а не для заголовка

// 'table' is our implementation 

final NoSelectionModel<OurCustomDTOClass> editSelectedRowModel = new NoSelectionModel<OurCustomDTOClass>(); 
table.getTable().setSelectionModel(editSelectedRowModel, DefaultSelectionEventManager.createBlacklistManager(0)); 
table.addDomHandler(new DoubleClickHandler() { 
     @Override 
     public void onDoubleClick(final DoubleClickEvent event) { 
      // code to open the popup to edit the record   
      // this popup must be opened only if the user selects the rows and NOT the header 
     } 
}, DoubleClickEvent.getType()); 

Просто для получения дополнительной информации, таблица нарисована как th (для заголовков таблиц) и tr (для строк таблицы).

Нам нужно избегать действий двойного щелчка, если пользователь дважды щелкнет заголовок таблицы. Я искал SO и другие ссылки, но пока не повезло.

Любые полезные указатели оцениваются. Благодарю.

ответ

2

Вы можете попытаться проверить цель мероприятия:

Element e = Element.as(event.getNativeEvent().getEventTarget()); 
if (e.getTagName().toLowerCase().equals("td")) { 
    // do something 
} 

Или вы можете разделить ваш виджет на два отдельных виджетов - один для заголовка, а другой для тела таблицы.