繁体   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