GWT Custom右键单击小部件

时间:2015-02-05 21:02:16

标签: gwt right-click

我需要实现小部件,我可以右键单击以禁用它,然后右键单击再次启用它。 我的代码是这样的:

widget.sinkEvents(Event.ONCONTEXTMENU);
widget.addHandler(new ContextMenuHandler() {
    @Override
    public void onContextMenu(ContextMenuEvent event)
    {
        event.preventDefault();
        event.stopPropagation();
        if (widget.isEnabled()) widget.setEnabled(false);
        else widget.setEnabled(true);
    }
}, ContextMenuEvent.getType());

启用窗口小部件时,此方法有效。意思是我可以右键单击以禁用此小部件。 但是,当窗口小部件被禁用时,它不会触发右键单击事件。

有没有办法让我的自定义右键单击在禁用的小部件上工作?

谢谢,

1 个答案:

答案 0 :(得分:1)

如果事件未在禁用的窗口小部件上触发,您可以尝试以下解决方法之一:

  • 在禁用窗口小部件后,创建一个不透明度为0的Label,其尺寸与窗口小部件相同,并使用ContextMenuHandler将其放在窗口小部件上,该窗口重新启用窗口小部件并自行删除。
  • 不是禁用窗口小部件,而是将其替换为禁用窗口小部件的图像。 一点点黑客,但如果这是一次性的话可能会有用
  • 禁用窗口小部件后,为其添加一个不同的事件处理程序以重新启用它(您可以尝试MouseDown,MouseOver,Click)。