TrayDialog中的SWT帮助按钮

时间:2014-06-04 15:04:19

标签: java eclipse dialog swt jface

我有一个扩展TrayDialog的类,它有一个帮助按钮。我已经设定了以下内容:

setDialogHelpAvailable(true);
setHelpAvailable(true);

我无法找到我应该如何实现左下角的“帮助”按钮。我试过了

@Override
protected void buttonPressed(int buttonId) {
    super.buttonPressed(buttonId);
    if(buttonId == IDialogConstants.HELP_ID) {
        System.out.println("Help requested");
    }
}

但它不起作用。我已经看过Can't put content behind SWT Wizard Help Button但我没有performHelp()方法,因为我不在向导中。

我在这里缺少什么?感谢

2 个答案:

答案 0 :(得分:1)

按下帮助按钮时,TrayDialog会查找具有SWT.Help侦听器的控件。它从当前聚焦的控件开始,向上移动通过控件的父级,直到它找到一个控件与侦听器(或用完控件)。

您可以设置一个与“帮助”背景相关联的帮助监听器。在Eclipse帮助系统中使用

PlatformUI.getWorkbench().getHelpSystem().setHelp(control, "context-id");

或者您可以编写自己的帮助监听器。

答案 1 :(得分:0)

我遇到了同样的问题,只需在我的某个控件中添加HelpListener即可解决问题:

Composite area.addHelpListener(new HelpListener() { 

    @Override public void helpRequested(HelpEvent e) { 
        System.out.println("This is the help info"); 
    }
});

并将以下内容添加到我的构造函数中:

setDialogHelpAvailable(true);