其它文本编辑器的职责

Java 示例编辑器继承了 AbstractTextEditor 中的许多有用的缺省行为。文本编辑框架处理可通过覆盖 AbstractTextEditor 中的方法来定制的其它几项职责。浏览此类及其子类的实现以了解如何在框架中定制行为。

下面是可以配置的一些有用的框架功能部件。

首选项处理

文本编辑器通常添加可以控制编辑器的表示和行为的用户首选项。在文本框架中,每个文本编辑器实例都具有相关联的用于访问用户首选项的首选项仓库。可以使用编辑器来设置此首选项仓库,也可以从已经在框架中使用的首选项仓库中继承。

对于 Java 示例编辑器,它继承由 TextEditor 初始化的首选项仓库。这就是由工作台编辑器插件定义的首选项仓库。  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
可在工作台 > 编辑器工作台 > 编辑器 > 文本编辑器首选项页面中处理编辑器插件首选项。

如果您不想对编辑器使用标准的工作台文本首选项,则可以设置另外的首选项仓库。这通常是通过覆盖 initializeEditor 并设置您自己的首选项仓库来完成的。如果确实使用的是您自己的首选项仓库,则将还需要覆盖 handlePreferenceStoreChanged() 方法(每当更新首选项时就会触发该方法)。

键绑定

键绑定作用域对于建立键绑定的查找次序很有用。具有上下文作用域可以降低不同插件产生冲突的键顺序的机率。缺省情况下,工作台在全局作用域内起作用。当文本编辑器变得活动时,它就会负责将作用域重新设置为文本编辑器作用域,以使特定于编辑器的键绑定将是活动的。

在平台文本框架中,每个文本编辑器实例都具有相关联的键绑定作用域。当它变得活动时,它将负责设置此作用域。TextEditor 定义此作用域并负责使它活动。作用域是在从构造函数中调用的方法中指定的:

protected void initializeKeyBindingScopes() {
	setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" });  
}

方法的自变量是字符串键绑定作用域标识的数组。如果想要编辑器定义它自己的键绑定作用域,则可以在编辑器类中覆盖此方法,也可以使用 setKeybindingScopes 来动态设置作用域。

必须在 org.eclipse.ui.commands 扩展点中使用相应的标识来定义作用域本身。以下是文本编辑器作用域的定义。

<extension
         point="org.eclipse.ui.commands">
      ...
      <scope
            name="%scope.text.name"
            parent="org.eclipse.ui.globalScope"
	    description="%scope.text.description"
            id="org.eclipse.ui.textEditorScope">
      </scope>
   </extension> 

Copyright IBM Corporation and others 2000, 2003.