如何在向导托盘中显示帮助
How to Display Help In Wizard's Tray
我想在向导的托盘中打开帮助 URL。这就是我想出的:
import org.eclipse.help.ui.internal.views.*;
public static void openHelpInWizard(Shell activeShell, String href) {
if (HelpTray.isAppropriateFor(activeShell)) {
TrayDialog dialog = (TrayDialog) activeShell.getData();
DialogTray tray = dialog.getTray();
if (tray == null) {
tray = new HelpTray();
dialog.openTray(tray);
}
if (tray instanceof HelpTray) {
ReusableHelpPart helpPart = ((HelpTray) tray).getHelpPart();
helpPart.showURL(href);
}
}
}
对于模块化,此代码依赖于 org.eclipse.help.ui
(帮助在另一个插件中)是不好的,但作为可选依赖项可能是可以容忍的。更糟糕的是,代码必须使用内部 类.
那么正确的做法是什么?
这真的很难找到:如果 IContext
通过 getText()
实现 returns null
并且只有一个 IHelpResource
当 getRelatedTopics
被称为 "href" 的一个帮助资源被显示。
所以如果你想做我所做的,你可以用上面提到的属性实现 IContext
,或者使用扩展点 org.eclipse.help.contexts
和 context.xml 像这样:
<contexts>
<context id="my_id">
<topic href="html/help_topic.html" label="My Help Topic"/>
</context>
</contexts>
(我认为 "label" 属性不是必需的。)
然后当然要像这样使用上下文 ID(它甚至不依赖于帮助插件):
PlatformUI.getWorkbench().getHelpSystem().displayHelp("my_id");
我想在向导的托盘中打开帮助 URL。这就是我想出的:
import org.eclipse.help.ui.internal.views.*;
public static void openHelpInWizard(Shell activeShell, String href) {
if (HelpTray.isAppropriateFor(activeShell)) {
TrayDialog dialog = (TrayDialog) activeShell.getData();
DialogTray tray = dialog.getTray();
if (tray == null) {
tray = new HelpTray();
dialog.openTray(tray);
}
if (tray instanceof HelpTray) {
ReusableHelpPart helpPart = ((HelpTray) tray).getHelpPart();
helpPart.showURL(href);
}
}
}
对于模块化,此代码依赖于 org.eclipse.help.ui
(帮助在另一个插件中)是不好的,但作为可选依赖项可能是可以容忍的。更糟糕的是,代码必须使用内部 类.
那么正确的做法是什么?
这真的很难找到:如果 IContext
通过 getText()
实现 returns null
并且只有一个 IHelpResource
当 getRelatedTopics
被称为 "href" 的一个帮助资源被显示。
所以如果你想做我所做的,你可以用上面提到的属性实现 IContext
,或者使用扩展点 org.eclipse.help.contexts
和 context.xml 像这样:
<contexts>
<context id="my_id">
<topic href="html/help_topic.html" label="My Help Topic"/>
</context>
</contexts>
(我认为 "label" 属性不是必需的。)
然后当然要像这样使用上下文 ID(它甚至不依赖于帮助插件):
PlatformUI.getWorkbench().getHelpSystem().displayHelp("my_id");