由于工具提示可以提供较少的提示,我们决定将F1(context sensitive)帮助添加到UI组件,例如draw2d图。但是面临一个问题:我们找不到合适的位置和参数调用方法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。
感谢您提供解决方案建议。
答案 0 :(得分:0)
SWT和draw2d的小部件彼此完全不同。 SWT只是为draw2d提供了一个平台,可以绘制某些东西""。因此,对于SWT,无法区分draw2d Label或者说draw2d Connection。所有它理解的是一个"图" (可能有任何数量的数字,因为它的孩子)将被涂在某个特定的区域(画上,它是,没有语义)。
您可以查看 org.eclipse.jface.dialogs.PopupDialog 类。也许你可以通过扩展这个类来制作自定义帮助对话框(扩展起来并不太难)。