为UI组件添加上下文相关帮助,例如GEF / Draw2d图

时间:2013-06-13 15:15:11

标签: eclipse eclipse-plugin eclipse-gef draw2d

由于工具提示可以提供较少的提示,我们决定将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。

感谢您提供解决方案建议。

1 个答案:

答案 0 :(得分:0)

SWT和draw2d的小部件彼此完全不同。 SWT只是为draw2d提供了一个平台,可以绘制某些东西""。因此,对于SWT,无法区分draw2d Label或者说draw2d Connection。所有它理解的是一个"图" (可能有任何数量的数字,因为它的孩子)将被涂在某个特定的区域(画上,它是,没有语义)。

您可以查看 org.eclipse.jface.dialogs.PopupDialog 类。也许你可以通过扩展这个类来制作自定义帮助对话框(扩展起来并不太难)。