[英]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.