0

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

    }

このイベントをキャプチャするには何をする必要がありますか?

4

2 に答える 2

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() をチェックすることができます。これは、通常、Windows で Control が使用される場合に Command が使用されるためです。

于 2010-09-12T16:19:16.807 に答える
0

セルの内容を でラップしFocusPanel、適切なハンドラー (おそらくMouseDownHandler) を追加するのはどうですか? (ヒント: ハンドラーを一度作成し、関連するすべてのセルに追加します)
また、キー ハンドラーなどを追加することもできるFocusPanelため、ネイティブ ブラウザー イベントに手を出す必要はありません (ブラウザー固有のコードで問題が発生する可能性があります)。など)、GWT に任せてください :)

于 2010-09-12T15:50:14.997 に答える