GWT应用程序中表格单元格中控件点击的事件类型是什么?我希望在用户执行此操作时基本上更改背景颜色。
我的代码的这部分基本上看起来像:
public void onBrowserEvent(Event event) {
Element td = getEventTargetCell(event);
if (td == null) return;
Element tr = DOM.getParent(td);
System.out.println("Event " + Event.getCurrentEvent());
switch (DOM.eventGetType(event)) {
case Event.ONMOUSEDOWN: {
//DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
onRowClick(tr);
break;
}
case Event.ONMOUSEUP: {
//DOM.setStyleAttribute(td, "backgroundColor", "#ffffff");
break;
}
case Event.ONMOUSEOVER: {
//DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
onRowRollover(tr);
break;
}
case Event.ONMOUSEOUT: {
//DOM.setStyleAttribute(td, "backgroundColor","#ffffff");
break;
}
/*case Event.ONCLICK: {
DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
break;
}*/
case Event.ONDBLCLICK: {
//DOM.setStyleAttribute(td, "backgroundColor", "#ffffff");
break;
}
case Event.KEYEVENTS: {
//DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
break;
}
case Event.ONFOCUS: {
//DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
break;
}
/*case Event. {
DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
break;
}*/
}
}
我需要做些什么才能捕获此事件?
答案 0 :(得分:2)
传递给onBrowserEvent的http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client/Event.html对象有方法。诸如boolean getCtrlKey()
。
case Event.ONCLICK: {
if (event.getCtrlKey()) {
DOM.setStyleAttribute(td, "backgroundColor", "#ffce00");
}
break;
}
这适用于Windows,不确定Mac和Linux。在OS X上,您可能会检查getMetaKey(),因为Command通常用于Windows上使用Control的位置。
答案 1 :(得分:0)
如何在FocusPanel
中包装单元格的内容并添加适当的处理程序(很可能是MouseDownHandler
)? (提示:创建处理程序一次并将其添加到所有相关单元格)
您还可以向FocusPanel
添加关键处理程序等,这样您就不需要涉及本机浏览器事件(这可能会导致一些问题,特定于浏览器的代码等),让GWT为您做到这一点:)