Embora a implementação de um editor do workbench seja específica para o plug-in e o conteúdo que você deseja editar, o workbench fornece uma estrutura geral para construir um editor. Os seguintes conceitos se aplicam a todos os editores de workbench.
Um editor deve implementar IEditorPart e normalmente é construído estendendo a classe EditorPart. Um editor implementa sua interface com o usuário no método createPartControl. Esse método é utilizado para montar os widgets do SWT ou os visualizadores JFace que apresentam o conteúdo do editor.
Uma entrada de editor é uma descrição de algo a ser editado. É possível comparar uma entrada de editor com um nome de arquivo, no entanto, ela é mais geral. IEditorInput define o protocolo de uma entrada de editor, incluindo o nome da entrada e a imagem que deveria ser usada para representá-lo nas etiquetas na parte superior do editor.
Duas entradas genéticas de editor são fornecidas na plataforma. IFileEditorInput representa uma entrada que é um arquivo no sistema de arquivos. IStorageEditorInput representa uma entrada que é um fluxo de bytes. Esses bytes podem vir de uma origem diferente do sistema de arquivos.
Se o seu editor puder suportar a substituição do objeto de entrada do editor durante o uso, você deveria implementar IReusableEditor. A implementação dessa interface permite que o workbench "recicle" o editor. As preferências do usuário do workbench permitem que o usuário exija que os editores devem ser reutilizados após um certo número deles estar aberto.
Se desejar implementar um histórico de navegação no editor, você deve implementar INavigationLocationProvider. Isso fornece um mecanismo para que o workbench solicite uma localização de navegação atual (INavigationLocation) conforme necessário para manter um histórico de navegação. O workbench trata a mecânica da interface com o usuário de navegação. Seu INavigationLocationserá notificado quando precisar restaurar o editor à localização que ele representa.
O restante da implementação do editor depende do conteúdo que você está tentando apresentar. Veremos a seguir o tipo de editor mais comum - o editor de textos.