0
내 Java 클래스 및 키 바인딩에 정의 된 action이 plugins.xml 파일에서 바인딩되어 있습니다. 처음 응용 프로그램을 시작할 때 툴팁에서 툴바의 키 바인딩을 봅니다.하지만 툴팁을 setToolTip (String toolTip)으로 변경하면 버튼 바인딩이 툴바 액션 버튼에서 사라지지만 키 바인딩은 여전히 작동합니다. 방법은 내가 다시 표시 할 방법이나 getAccelerator() 메소드는이이 플러그인에 정의되어 어떻게이 액션 클래스setToolTip() 메소드로 변경하면 액션에 대한 키 바인딩 툴팁이 사라집니다.
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");
}
}
}
내 코드 0 을 반환하기 때문에 나는 내 행동에 대한 특정 키 바인딩을받을 수 있나요. 이 얻을 것이다보기 또는 편집기에서
TriggerSequence activeBinding = bindingService.getBestActiveBindingFor("command id");
if (activeBinding != null && !activeBinding.isEmpty()) {
String acceleratorText = activeBinding.format();
}
: XML
<key
commandId="com.sample.sampleFunction"
contextId="org.eclipse.ui.context.window"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+A" />
사용할 수 있습니다 이것은 실제로 작동합니다. 그러나 행동의 원인은 무엇입니까? 그건 이상하게 보입니다. 나는 틀린 일을 했는가, 아니면 이클립스의 버그인가? –
키 바인딩을 보여주는 도구 설명은 기본 도구 설명 일뿐입니다. 특정 도구 설명을 설정하면 해당 기본값을 바꿉니다. –
그래, 그게 내가 알아 낸거야. 그러나 기본 툴팁 동작은 이상합니다. 원하는 툴팁 및 추가 된 키로 동작이 시작되기 때문입니다. 액셀러레이터 도구 설명이 이미 추가되었는지 알고 싶습니까? getToolTip() 메서드는 액셀러레이터 바인딩없이 툴팁을 제공하기 때문에. –