我在 java 类中定义了一个操作,并在 plugins.xml 文件中进行了键绑定(bind)和绑定(bind)。当我第一次启动我的应用程序时,我在工具提示中看到我的按键绑定(bind)(这就是它应该的样子),但是在使用 setToolTip(String toolTip) 更改工具提示后,按钮绑定(bind)从工具栏操作按钮中消失,但按键绑定(bind)仍然有效。我如何再次显示它,或者如何获取我的操作的特定键绑定(bind),因为 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" />
最佳答案
您可以使用IBindingService
来获取命令的键绑定(bind)文本:
TriggerSequence activeBinding = bindingService.getBestActiveBindingFor("command id");
if (activeBinding != null && !activeBinding.isEmpty()) {
String acceleratorText = activeBinding.format();
}
在 View 或编辑器中,这将获取绑定(bind)服务:
IBindingService service = (IBindingService)getSite().getService(IBindingService.class);
你可以在其他地方使用
IBindingService bindingSvc = (IBindingService)PlatformUI.getWorkbench().getAdapter(IBindingService.class);
关于java - 使用 setToolTip() 方法更改后,操作上的按键绑定(bind)工具提示消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165116/