Dea*_*eam 12 events gwt double-click cell
我无法弄清楚如何将双击事件添加到CellTable的单元格中.
是否可以使用GWT CellTable?
有没有解决方法
谢谢..
人
顺便说一句,我看过这篇文章,但没有回复...... http://www.devcomments.com/Adding-DoubleClicks-and-OnContextMenu-to-CellTable-at1066168.htm
我精心制作了一些符合我需求的东西:
cellTable.addCellPreviewHandler(new Handler<TitoloProxy>() {
long lastClick=-1000;
@Override
public void onCellPreview(CellPreviewEvent<TitoloProxy> event) {
long clictAt = System.currentTimeMillis();
GWT.log("clickAt: "+(clictAt));
GWT.log("lastClick: "+(lastClick));
if(event.getNativeEvent().getType().contains("click")){
GWT.log(""+(clictAt-lastClick));
if(clictAt-lastClick < 300) { // dblclick on 2 clicks detected within 300 ms
Window.alert("I am a double click crafted event!");
}
lastClick = System.currentTimeMillis();
}
}
});
Run Code Online (Sandbox Code Playgroud)
小智 5
cellTable.addDomHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(DoubleClickEvent event) {
Window.alert("That's it!");
}
}, DoubleClickEvent.getType());
Run Code Online (Sandbox Code Playgroud)
小智 -1
如果您想要一个文本单元格来支持您自己选择的事件列表,您可以使用:
public class EventfulTextCell extends AbstractSafeHtmlCell`<String`> {
private static final String[] NO_CONSUMED_EVENTS = null;
public EventfulTextCell() {
this(NO_CONSUMED_EVENTS);
}
public EventfulTextCell(String... consumedEvents) {
super(SimpleSafeHtmlRenderer.getInstance(), consumedEvents);
}
@Override
public void render(Context context, SafeHtml value, SafeHtmlBuilder sb) {
if (value != null) {
sb.append(value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后你实例化它:
new EventfulTextCell("click", "dblclick")
Run Code Online (Sandbox Code Playgroud)
然后重写 onBrowserEvent() 方法来处理您的事件。