Editores de área de trabalho

Embora a implementação de um editor de área de trabalho seja específica do plug-in e do conteúdo que pretende editar, a área de trabalho faculta uma estrutura geral para construir um editor. Os conceitos seguintes aplicam-se a todos os editores de área de trabalho.

Partes de editor e respectivas entradas de dados

Um editor deve implementar uma IEditorPart e costuma ser construído mediante extensão da classe EditorPart.  Um editor implementa a sua interface de utilizador no método createPartControl.  Este método é utilizado para juntar os widgets SWT ou os visualizadores JFace que apresentam o conteúdo do editor.  

Uma entrada de dados de editor é a descrição de algo a editar. Poderá considerar uma entrada de dados de editor como um nome de ficheiro, embora seja mais genérico. IEditorInput define o protocol para uma entrada de dados de editor, incluindo o nome da entrada de dados e da imagem que deve ser utilizada para a representar nas etiquetas no topo do editor.

Etiqueta de entrada de dados de editor

São facultadas duas entradas de dados de editor genéricas na plataforma. IFileEditorInput representa uma entrada de dados que é um ficheiro no sistema de ficheiros.   IStorageEditorInput representa uma entrada de dados que é uma sequência de bytes. Estes bytes poderão ser oriundos de fontes além do sistema de ficheiros.

Repor a entrada de dados de editor

Se o editor puder suportar a substituição do objecto de entrada de dados de editor de improviso, deverá implementar   IReusableEditor. A implementação desta interface permite à área de trabalho "reciclar" o editor. As preferências de utilizador da área de trabalho permitem ao utilizador ditar que os editores devem ser reutilizados após certo número deles estar aberto.

Navegar na entrada de dados de editor 

Se quiser implementar um histórico de navegação no editor, deverá implementar INavigationLocationProvider. Isto faculta um mecanismo para a área de trabalho solicitar uma localização da navegação actual (INavigationLocation) conforme o necessário para manter um histórico de navegação. A área de trabalho trata da mecânica da interface de utilizador da navegação.   A INavigationLocation será avisada quando precisar de restaurar o editor na localização que ele representa.

O resto da implementação do editor depende do conteúdo que esteja a tentar apresentar.  Veremos a seguir o tipo de editor mais comum - o editor de texto.