簡體   English   中英

如何在SmartGWT日歷中的特定事件上單擊鼠標右鍵?

[英]How to handle right mouse click on the specific Event in SmartGWT Calendar?

我想在SmartGWT日歷中的每個事件的右鍵單擊下創建一個上下文菜單,或只處理事件的右鍵單擊以顯示一個彈出窗口。

calendar.addEventClickHandler(new EventClickHandler() {
        @Override
        public void onEventClick(TimetableEventClick event) {
            // TODO Auto-generated method stub
        }
    });

上面的代碼不允許我根據單擊的左/右鼠標來進行不同的操作。 我可以向日歷實例添加一個處理程序:

calendar.addRightMouseDownHandler(new RightMouseDownHandler() {
        @Override
        public void onRightMouseDown(RightMouseDownEvent event) {
            // TODO Auto-generated method stub
        }
    });

...但是如何獲取有關確切點擊了哪個事件的信息? 沒有可用的event.getId(),也沒有相似之處。 我想用getX(),getY()和位置玩不是解決方案嗎?

順便說一句:處理GWT中的右鍵單擊是否仍然是個壞習慣? 我應該將其功能留給瀏覽器嗎?

我想這就是你想要的:

calendar.addShowContextMenuHandler(new ShowContextMenuHandler() {
    @Override
    public void onShowContextMenu(ShowContextMenuEvent event) {
       event.cancel();
       // your code
    }
});

我認為在GWT中單擊右鍵單擊並不是壞習慣。 如果是這樣,則這些方法將不會在API中被定義為被覆蓋。

日歷的右鍵單擊功能本機不存在。

本文很好地總結了GWT在這方面的不足,以及一種克服它的方法。

http://whatwouldnickdo.com/wordpress/370/gwt-right-click-context-menu/

@UiHandler("calendar")
void onCalendarClick(ClickEvent event) {
    Date timeSelected = calendar.getActiveTime();
    int  daySelected = calendar.getActiveDay();
}

您使用常規的ClickEvent處理程序,並使用日歷對象getActiveTime()和/或getActiveDay()的功能來獲取指針懸停在其上的單元格的位置。 上面的代碼使用的是UI Binder,但將與普通的JAVA GWT代碼類似地工作。

您可以將日歷作為參數傳遞給處理程序的構造函數。 觸發點擊后,您將從日歷中獲得選定的日期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM