Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在向导页面对话框而不是工作台中显示帮助_Java_Eclipse_Jface_Wizard - Fatal编程技术网

Java 如何在向导页面对话框而不是工作台中显示帮助

Java 如何在向导页面对话框而不是工作台中显示帮助,java,eclipse,jface,wizard,Java,Eclipse,Jface,Wizard,在使用Eclipse扩展点“org.Eclipse.ui.newWizards”实现的NewWizard中,当org.Eclipse.jface.wizard.wizards页面打开时,我希望右侧的帮助区域立即显示,而无需按下(?)帮助按钮 我在WizardPage.createControl(复合父级)的末尾调用了以下代码,但帮助将在向导对话框后面的工作台中打开。我希望它打开向导右侧的帮助 private void sethelp() { postSetFocus(this.getCo

在使用Eclipse扩展点“org.Eclipse.ui.newWizards”实现的NewWizard中,当org.Eclipse.jface.wizard.wizards页面打开时,我希望右侧的帮助区域立即显示,而无需按下(?)帮助按钮

我在WizardPage.createControl(复合父级)的末尾调用了以下代码,但帮助将在向导对话框后面的工作台中打开。我希望它打开向导右侧的帮助

private void sethelp() {
    postSetFocus(this.getControl());
    PlatformUI.getWorkbench().getHelpSystem().setHelp(this.getControl(), STR_CONTEXT );
    PlatformUI.getWorkbench().getHelpSystem().displayDynamicHelp();
}

private void postSetFocus(final Control control) {
    Display display = control.getDisplay();
    if (display != null) {
        display.asyncExec(new Runnable() {
            @Override
            public void run() {
                control.setFocus();
            }
        });
    }
}
我确信我的帮助上下文是正确的。向导页面打开后,如果我手动单击(?)按钮,帮助将沿向导的右侧打开。但我希望它以编程方式发生

我是否缺少PlatformUI.getWorkbench().getHelpSystem()的某些信息


感谢您的帮助(无双关语)。

设置焦点后,尝试在asyncExec Runnable中执行
显示dynamichelp
。谢谢,但这不起作用;仍不显示在向导对话框中。好像我没有得到正确的activeShell,而是得到了正常的工作台。我试过:IWorkbenchWindow=PlatformUI.getWorkbench().getActiveWorkbenchWindow();window.getWorkbench().getHelpSystem().displayDynamicHelp();但这也有同样的行为。