1

我在我的 Eclipse RCP 应用程序中创建了自己的工具。当工具被激活时,特定视图被打开,当我按下 F1 按钮时,我想显示一个动态帮助。

我设置了我的 context.xml,在我的视图createPartControl函数中我有这一行:

    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, "lineer.udig.tools.yoltool.bufferView.myId"); 

“lineer.udig.tools.yoltool.bufferView”是我的视图 ID,“myId”是我<context id="myId">在 context.xml 中的上下文 ID。

当我选择我的工具时,视图正在打开,当我单击此视图上的任何文本框并按F1时,动态帮助将起作用。

但是,我想在此视图的任何位置显示此帮助,而无需单击文本框或组合框。

4

1 回答 1

1

函数 createPartControl 正在获取“复合父级”的参数

public void createPartControl(Composite parent) {
     ..
     ..
}

因此,如果我们使复合成为私有变量private Composite parent;,那么在函数中

public void createPartControl(Composite parent) {
     ..
     this.parent = parent;
}

在类的最后,我们需要将这两行添加到 setFocus() 函数中。

    public void setFocus() {
        // TODO Auto-generated method stub
           if(parent != null) // NEW
               parent.setFocus(); // NEW

    }

所以在这些修改之后,我们的动态帮助会在视图被激活时自动工作。

于 2013-02-12T07:53:51.660 回答