如何在SWT TrayDialog中永久禁用托盘?

时间:2015-07-01 13:52:33

标签: java eclipse swt eclipse-rcp

当按下F1时,TrayDialog的默认行为是打开帮助托盘(如果尚未打开),方法是调用openTray()。我不希望这种行为(但我确实想使用扩展ElementTreeSelectionDialog的{​​{1}},而我不知道如何禁用它。

我尝试为TrayDialog添加我自己的侦听器事件过滤器,并在SWT.KeyDown内设置event.type = SWT.NONE但没有成功(我自己的事件处理程序有效,但托盘也已打开)。< / p>

我还试图覆盖handleEvent()什么也不做,但随后抛出了NPE:

openTray()

有什么想法吗?我正在使用Eclipse Kepler。

1 个答案:

答案 0 :(得分:1)

好吧,我找到了办法。我不确定它是否是推荐/清洁/安全的方式,但如果它对某人有帮助,这对我有用:

@Override
protected void configureShell(Shell shell) {
    super.configureShell(shell);
    shell.addHelpListener(new HelpListener() {
        @Override
        public void helpRequested(HelpEvent e) {
            // nothing to do
        }
    });
}