使用方法setToolTip()更改后,键绑定工具提示操作消失

时间:2015-01-27 07:15:12

标签: java eclipse eclipse-plugin tooltip jface

我在我的java类中定义了一个动作,并在plugins.xml文件中绑定并绑定它。当我第一次启动我的应用程序时,我在工具提示中看到了我的键绑定(这是它的假设)但是在使用setToolTip(String toolTip)更改工具提示后,按钮绑定从工具栏操作按钮中消失,但是键绑定仍然有效。如何再次显示它,或者如何为我的操作获取特定的键绑定,因为getAccelerator()方法返回0。 这是我的动作类代码

public class SampleAction extends DiagramAction{


public static final String ID = "sampleFunction";
 private void initData() {
        setId(ID);
        setText(Messages.cmd_AddBranchAction_text);
        setToolTipText(Messages.cmd_AddBranchAction_desc);
    }
    @Override
      public void refresh() {
         super.refresh();
       //checks if button in toolbar is enabled
          boolean isEnabled = isEnabled();
        if(isEnabled) {
            setToolTipText("Do something");
        } else {
            setToolTipText("Node not selected, select a node");
         }
     }
  }

这是在plugin.xml中定义的方式

 <key
        commandId="com.sample.sampleFunction"
        contextId="org.eclipse.ui.context.window"
        schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
        sequence="M1+A" />

1 个答案:

答案 0 :(得分:1)

您可以使用IBindingService获取命令的键绑定文本:

TriggerSequence activeBinding = bindingService.getBestActiveBindingFor("command id");
if (activeBinding != null && !activeBinding.isEmpty()) {
    String acceleratorText = activeBinding.format();
}

在视图或编辑器中,这将获得绑定服务:

IBindingService service = (IBindingService)getSite().getService(IBindingService.class);

其他地方你可以使用

IBindingService bindingSvc = (IBindingService)PlatformUI.getWorkbench().getAdapter(IBindingService.class);