什么类型的事件是gwt中的control-click

时间:2010-09-12 05:52:14

标签: gwt cell jquery-ui-selectable

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;
        }*/
        }

    }

我需要做些什么才能捕获此事件?

2 个答案:

答案 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为您做到这一点:)