Outras Responsabilidades do Editor de Texto

O editor de exemplo Java herda vários comportamentos padrão úteis de AbstractTextEditor.  A estrutura de edição de texto trata várias outras responsabilidades que podem ser personalizadas fazendo a substituição de métodos em AbstractTextEditor.  Procure na implementação dessa classe e de suas subclasses para consultar como o comportamento é personalizado na estrutura.

A seguir são apresentados alguns dos recursos úteis da estrutura que podem ser configurados.

Tratamento de preferências

Os editores de texto normalmente fornecem preferências do usuário que controlam a apresentação e o comportamento do editor.  Na estrutura do texto, cada instância do editor de texto possui um armazenamento de preferências associado que é utilizado para acessar as preferências do usuário.  Esse armazenamento de preferências pode ser configurado pelo seu editor ou você pode herdar de armazenamentos de preferências já utilizados na estrutura.

No caso do editor de exemplo Java, ele herda o armazenamento de preferências inicializado por TextEditor.  Esse é o armazenamento de preferências definido pelo plug-in do editor do workbench.  

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
As preferências do plug-in do editor podem ser manipuladas nas páginas de preferências Workbench > Editores e Workbench > Editores > Editor de Texto.

Se não desejar utilizar as preferências de texto padrão do workbench para seu editor, é possível definir um armazenamento de preferências diferente.  Isso é normalmente feito pela substituição de initializeEditor e pela definição de seu próprio armazenamento de preferências.  Se você utilizar seu próprio armazenamento de preferências, também será necessário substituir o método handlePreferenceStoreChanged() que é acionado sempre que uma preferência for atualizada.

Ligações de teclas

Escopos de ligação de teclas são úteis para estabelecer uma ordem de procura para ligações de teclas.  A existência de escopos contextuais reduz as chances de plug-ins diferentes contribuírem com seqüências de teclas conflitantes.  Por padrão, o workbench opera em um escopo global.  Quando um editor de texto se torna ativo, ele é responsável pela reinicialização do escopo para o escopo do editor de texto, para que as ligações de teclas específicas fiquem ativas.

Na estrutura do texto da plataforma, cada instância do editor de texto possui um escopo de ligação de teclas associado.  Ele é responsável pela definição desse escopo quando se torna ativo.  TextEditor define esse escopo e se ocupa de sua ativação.  O escopo é atribuído em um método que é chamado a partir de um construtor:

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

O argumento do método é uma matriz de cadeias de IDs do escopo de ligação de teclas.  Se desejar que o editor defina seu próprio escopo de ligação de teclas, é possível substituir esse método na classe do editor ou definir o escopo dinamicamente utilizando setKeybindingScopes.

O próprio escopo deve ser definido com o ID correspondente no ponto de extensão org.eclipse.ui.commands.  A seguir é apresentada a definição para o escopo do 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 e outros 2000, 2003.