2017-12-20 36 views
0

내 RCP 앱의 특정 시점에서 F5, Shift + F5, Ctrl + N, Ctrl + P와 같은 단축키를 사용하여 시작, 중지, 다음, 이전 등을 제공하고 싶습니다. 이것들은 이미 표준 체계에 정의되어 있으며, 표준 액션을 오버라이드하고 싶습니다.런타임시 키 바인딩을 활성화하는 방법은 무엇입니까?

런타임에 활성 키 바인딩 체계를 전환 할 수 있습니까?

답변

1

org.eclipse.ui.contexts 확장 점을 사용하여 키 바인딩에 대한 새로운 '컨텍스트'를 정의한 다음 해당 컨텍스트에서 키 바인딩을 선언 할 수 있습니다.

<extension 
     point="org.eclipse.ui.contexts"> 
    <context 
     name="%context.editingAnt.name" 
     description="%context.editingAnt.description" 
     parentId="org.eclipse.ui.textEditorScope" 
     id="org.eclipse.ant.ui.AntEditorScope"> 
    </context> 
</extension> 

그 맥락에서 키 바인딩을 선언 : 앤트 편집기 컨텍스트 org.eclipse.ant.ui.AntEditorScope를 선언 예를 들어

<extension point="org.eclipse.ui.bindings"> 
    <key 
     sequence="M1+M2+F" 
     contextId="org.eclipse.ant.ui.AntEditorScope" 
     commandId="org.eclipse.jdt.ui.edit.text.java.format" 
     schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/> 

당신이 그것을 활성화해야합니다 컨텍스트를 사용합니다. TextEditor 재정 initializeKeyBindingScopes을 확장하는 편집기에서 :

@Override 
protected void initializeKeyBindingScopes() { 
    setKeyBindingScopes(new String[] { "org.eclipse.ant.ui.AntEditorScope" }); 
} 

는 다른 곳 IContextService 서비스 activateContext 방법을 사용합니다.