由于 tooltip 只能提供较少的提示,我们决定为 draw2d 图形等 UI 组件添加 F1(上下文敏感)帮助。但是面临一个问题:我们找不到合适的位置和参数来调用该方法IWorkbenchHelpSystem.setHelp(Control control, String contextId)
。
现在我们做一个这样的解决方法:
//in UserDefinedEditPart
@Override
protected IFigure createFigure() {
//set help... (FIXME)
PlatformUI.getWorkbench().getHelpSystem().setHelp(Display.getCurrent().getActiveShell(), PublicConstants.CONTEXT_ID);
return new UserDefinedFigure();
}
如您所见,setHelp()
方法的第一个参数应该是 SWT 或 JFace 控件,但它被设置为当前工作台。我认为 draw2d 中的图形是轻量级的,并且与 SWT 或 JFace 没有任何关联。
感谢您的解决方案建议。