Otras funciones del editor de texto

El editor Java de ejemplo hereda muchos comportamientos útiles de AbstractTextEditor.  La infraestructura de edición de texto maneja otras diversas funciones que pueden personalizarse alterando temporalmente los métodos de AbstractTextEditor.  Examine la implementación de esta clase y de sus subclases para conocer cómo se personaliza el comportamiento en la infraestructura.

A continuación se indican algunas de las funciones útiles de la infraestructura que pueden configurarse.

Manejo de preferencias

Generalmente, los editores de texto aportan preferencias de usuario que controlan la presentación y el comportamiento del editor.  En la infraestructura de texto, cada instancia de editor de texto tiene asociado un almacén de preferencias que se utiliza para acceder a las preferencias de usuario.  El editor puede configurar este almacén de preferencias, o puede heredarse de los almacenes de preferencias ya utilizados en la infraestructura.

En el caso del editor Java de ejemplo, éste hereda el almacén de preferencias inicializado por TextEditor.  Se trata del almacén de preferencias definido por el conector de editores del entorno de trabajo.  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
Las preferencias del conector de editores pueden manipularse en las páginas de preferencias Entorno de trabajo > Editores y Entorno de trabajo > Editores > Editor de texto.

Si no desea utilizar las preferencias de texto estándar del entorno de trabajo para el editor, puede definir un almacén de preferencias diferente.  Esta operación se realiza generalmente alterando temporalmente initializeEditor y estableciendo su propio almacén de preferencias.  Si utiliza su propio almacén de preferencias, deberá también alterar temporalmente el método handlePreferenceStoreChanged(), que se desencadena siempre que se actualiza una preferencia.

Enlaces de teclas

Los ámbitos de enlaces de teclas son de utilidad para establecer un orden de búsqueda para enlaces de teclas.  El hecho de disponer de ámbitos contextuales reduce la posibilidad de que diferentes conectores aporten secuencias de teclas que entren en conflicto.  Por omisión, el entorno de trabajo opera en un ámbito global.  Cuando se activa un editor de texto, éste es responsable de restablecer el ámbito en el ámbito del editor de texto, para que se activen los enlaces de teclas específicos de dicho editor.

En la infraestructura de texto de la plataforma, cada instancia de editor de texto tiene asociado un ámbito de enlaces de teclas.  Es responsable de establecer este ámbito cuando se activa.  TextEditor define este ámbito y se encarga de activarlo.  El ámbito se asigna en un método al que se llama desde el constructor:

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

El argumento del método es una matriz de los ID de ámbito de enlaces de teclas de tipo serie.  Si desea que el editor defina su propio ámbito de enlaces de teclas, puede alterar temporalmente este método en la clase de editor o establecer el ámbito dinámicamente mediante setKeybindingScopes.

El ámbito debe definirse con el ID correspondiente en el punto de extensión org.eclipse.ui.commands.  A continuación figura la definición del ámbito del editor de texto.

   <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 y otros 2000, 2003.