2009-12-22 5 views
3

이클립스 플러그인 인프라를 사용하여 Eclipse를 확장 중이며 문제가 발생했습니다. 어떻게 처분해야하는지 잘 모르겠습니다.어떻게 프로그래밍 방식 이클립스 플러그인을위한 커멘드의 키 바인딩을 감지?

일부 단축키가있는 명령이 있습니다. 나는 또한 이클립스에서 키 바인딩합니다 (IBindingService의 주요 필터를 비활성화)을 훔치는해야하는 편집기가 있습니다. 그러나이 명령은 핫키가 작동 할만큼 충분히 중요합니다. 현재, 특정 편집기에서 부분적으로 내가 그 명령에 대한 기본 키 바인딩이 무엇인지를 확인하고 그것을 감지하면 수동으로 실행 키 이벤트를 듣고있어 곳. 이것에 대한 분명한 문제는 명령에 대한 키 바인딩이 변경된 경우에도 여전히 해당 편집기에서 기본 바인딩을 사용한다는 것입니다. 특정 명령의 키 바인딩에 쉽게 액세스 할 수있는 방법이있어서 단순히 기본 명령이 아닌이를 확인할 수 있습니까?

나는이 솔루션은 서로 다른 편집자 사이에 이식 할 수 없습니다 실현,하지만 내가 이것에 대해 걱정할 필요가 유일한 편집기입니다, 그래서 난 정말이 하나의 특별한 케이스를 상관하지 않습니다.

답변

5

당신은 org.eclipse.ui.PlatformUI을 통해, 그것은 조금 까다 롭습니다 점점 ​​org.eclipse.ui.keys.IBindingService를 사용해야합니다 :

IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class); 
bindingService.getBestActiveBindingFormattedFor(CMDID); 

CMDID은 당신이 당신의 plugin.xml에 정의 된 명령 ID입니다.

+0

굉장이 큰했다. 나는 그것이 바인딩의 모든 데리러 싶었지만, 지금 일하고 때문에, 대신 getActiveBindings을 사용했다. 감사! – DivineWolfwood