在我的自定義編輯器中,我希望處理程式僅在它在編輯器中執行時才被激活。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.ui.editors">
<editor
id="testingpluginproject.editors.XMLEditor"
name="Sample XML Editor"
icon="icons/sample.png"
extensions="xxml"
class="testingpluginproject.editors.XMLEditor"
contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor">
</editor>
</extension>
<extension
point="org.eclipse.ui.contexts">
<context
id="com.my.ui.definition.activatedEditorContext"
name="Editor Context"
parentId="org.eclipse.ui.textEditorScope">
</context>
</extension>
<extension point="org.eclipse.ui.commands">
<command id="com.my.handler" name="Hello"/>
</extension>
<extension point="org.eclipse.ui.handlers">
<handler commandId="com.my.handler" class="com.my.handler.HelloHandler"/>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="com.my.handler"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
contextId="com.my.ui.definition.activatedEditorContext"
sequence="Ctrl 7">
</key>
</extension>
</plugin>
這是編輯器中的激活。
public XMLEditor() {
colorManager = new ColorManager();
setSourceViewerConfiguration(new XMLConfiguration(colorManager));
setDocumentProvider(new XMLDocumentProvider());
IContextService contextService = (IContextService) PlatformUI
.getWorkbench().getService(IContextService.class);
contextService.activateContext("com.my.ui.definition.activatedEditorContext");
}
所以我認為在plugin.xml 的配置中antyhin 出錯了。
uj5u.com熱心網友回復:
在文本編輯器中,您不會為此使用背景關系服務。相反,您覆寫AbstractDecoratedTextEditor#initializeKeyBindingScopes并設定鍵系結范圍:
/*
* @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#initializeKeyBindingScopes()
*/
@Override
protected void initializeKeyBindingScopes() {
setKeyBindingScopes(new String[] { "com.my.ui.definition.activatedEditorContext" });
}
最終使用 IKeyBindingService
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/379831.html
