Descrição: esse ponto de extensão é utilizado para incluir novos editores ao workbench. Um editor é um componente visual dentro de uma página do workbench. É tipicamente utilizado para editar ou procurar um documento ou um objeto de entrada. Para abrir um editor, o usuário irá chamar "Abrir" em um arquivo IFile. Ao executar essa ação, o registro do workbench é consultado para determinar uma editor apropriado para o tipo de arquivo e, então, uma nova ocorrência de tipo de editor é criada. O resultado real depende do tipo de editor. O workbench fornece suporte para a criação de editores internos, editores, que são integrados de forma precisa no workbench, e editores externos que são lançados em uma janela de estrutura separada. Há também vários níveis de integração entre esses extremos.
No caso de um editor interno, a estreita integração pode ser alcançada entre a janela da área de trabalho e a parte do editor. O menu da área de trabalho e a barra de ferramentas são pré carregadas com um número de ações comuns, tais como, recortar, copiar e colar. Espera-se que a parte ativa, exibição ou editor forneça a implementação para essas ações. Um editor interno pode também definir novas ações que aparecem na janela da área de trabalho. Essas ações somente aparecem quando o editor está ativo.
A integração entre a área de trabalho e os editores externos é mais tênue. Nesse caso a área de trabalho poderá lançar um editor, mas após isso, não terá como determinar o estado do editor externo ou colaborar com o mesmo de nenhuma forma, exceto por meio do sistema de arquivos.
Marcação da Configuração:
<!ELEMENT editor EMPTY>
<!ATTLIST editor
id
CDATA #REQUIRED
name
CDATA #REQUIRED
icon
CDATA #IMPLIED
class
CDATA #IMPLIED
command
CDATA #IMPLIED
launcher
CDATA #IMPLIED
contributorClass
CDATA #IMPLIED
extensions
CDATA #OPTIONAL
filenames
CDATA #OPTIONAL
default
CDATA (true|false) "false"
A seguir um exemplo de uma definição de extensão de editor interno:
<extension point="org.eclipse.ui.editors">
<editor
id="com.xyz.XMLEditor"
name="Fancy XYZ
XML editor"
icon="./icons/XMLEditor.gif"
extension="xml"
class="com.xyz.XMLEditor"
contributorClass="com.xyz.XMLEditorContributor"
default="false">
</editor>
</extension>
Informações de API:
se o atributo command for utilizado, ele será tratado como uma linha de comando do programa externo que será executada no modo dependente de plataforma.
Se o atributo launcher for utilizado, o editor também será tratado como um programa externo. Nesse caso a classe especificada deve implementar org.eclipse.ui.IEditorLauncher. O launcher será instanciado e então o arquivo abrir(IFile) será chamado para lançar o editor.
Se o atributo classe for utilizado, a área de trabalho assumirá que há um editor interno e a classe especificada deve implementar org.eclipse.ui.IEditorPart. É uma prática comum subclassificar org.eclipse.ui.EditorPart ao definir um novo tipo de editor. Também é necessário definir um atributo contributorClass. A classe especificada deve implementar org.eclipse.ui.IEditorActionBarContributor, é e utilizado para incluir novas ações ao menu da área de trabalho e a barra de ferramentas que refletem os recursos do tipo de editor.
Dentro do workbench pode haver mais que um editor aberto de um tipo em particular. Por exemplo, pode haver um ou mais editores Java abertos. Para evitar a criação de ações em duplicidade e imagens de ações, o conceito do editor foi dividido em dois.. Um IEditorActionBarContributor é responsável pela criação das ações. O editor é responsável pela implementação da ação. Além disso, o contribuidor é dividido por cada editor aberto. Como resultado desse design há somente um conjunto de ações para um ou maus editores abertos.
O contributor incluirá novas ações ao menu da área de trabalho e à barra de ferramentas que refletem o tipo de editor. Essas ações são divididas e, quando chamadas, agem mediante um editor ativo. O editor ativo é transferido para o contributor chamando-se IEditorActionBarContributor#setActiveEditor. Os identificadores para ações e grupos principais dentro da janela do workbench são definidos em org.eclipse.ui.IWorkbenchActionConstants. Isso deveria ser utilizado como ponto de referência para a inclusão de novas ações. Menus de nível máximo são criados utlizando-se os seguintes valores para o atributo path:
Implementação Fornecida: o workbench fornece um "Editor de Texto Padrão" interno. O produto do usuário final pode conter outros editores como parte do pacote de entrega. Nesse caso, os editores registrarão as extensões utilizando a sintaxe descrita acima.