Editores Internos e Externos
Identificador:
org.eclipse.ui.editors
Descrição:
Esse ponto de extensão é utilizado para incluir novos editores para o workbench. Um editor é um componente visual em uma página do workbench. Normalmente, ele é utilizado para editar ou procurar um documento ou objeto de entrada. Para abrir um editor, geralmente o usuário chama "Abrir" em um IFile.
Quando essa ação é executada, o registro do workbench é consultado para determinar um editor apropriado para o tipo de arquivo e, em seguida, uma nova instância do tipo de editor é criada. O resultado real depende do tipo de editor. O workbench fornece suporte para a criação de editores internos, que estão estritamente integrados ao workbench, e de editores externos, que são ativados em uma janela com estrutura separada.
Há também vários níveis de integração entre essas extremidades.
No caso de um editor interno, a integração estrita pode ser realizada entre a janela do workbench e o editor. O menu e a barra de ferramentas do workbench são pré-carregados com ações comuns, como recortar, copiar e colar. Espera-se que a parte ativa, a exibição ou o editor, forneça a implementação dessas ações. Um editor interno também pode definir novas ações que aparecem na janela do workbench. Essas ações aparecem apenas quando o editor está ativo.
A integração entre o workbench e os editores externos é mais tênue. Nesse caso, o workbench pode ativar um editor, mas depois que isso ocorre, não tem como determinar o estado do editor externo ou como colaborar com ele de alguma forma, exceto por meio do sistema de arquivos.
Marcação da Configuração:
<!ELEMENT extension (editor*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
- point - um identificador completo do ponto de extensão de destino
- id - um identificador opcional da instância de extensão
- name - um nome opcional da instância de extensão
<!ELEMENT editor (contentTypeBinding*)>
<!ATTLIST editor
id CDATA #REQUIRED
name CDATA #REQUIRED
icon CDATA #IMPLIED
extensions CDATA #IMPLIED
class CDATA #IMPLIED
command CDATA #IMPLIED
launcher CDATA #IMPLIED
contributorClass CDATA #IMPLIED
default (true | false) "false"
filenames CDATA #IMPLIED
symbolicFontName CDATA #IMPLIED
matchingStrategy CDATA #IMPLIED>
- id - nome único que será utilizado para identificar esse editor.
- name - um nome traduzível que será utilizado na UI para esse editor.
- icon - um nome relativo do ícone que será utilizado para todos os recursos que correspondam às extensões especificadas.
Um ícone não será requerido se você especificar um comando em vez de especificar uma classe. Nesse caso, o workbench utilizará o ícone fornecido pelo sistema operacional.
- extensions - um campo opcional que contém a lista de tipos de arquivos entendidos pelo editor. Uma cadeia que contém extensões de arquivos separados por vírgula. Por exemplo, um editor que entenda documentos de hipertexto pode registrar-se como "htm, html".
- class - o nome de uma classe que implementa o org.eclipse.ui.IEditorPart. Os
atributos class, command e launcher são mutuamente
exclusivos. Se esse atributo for definido, contributorClass também deverá ser definido.
- command - um comando a ser executado a fim de lançar um editor externo. O comando executável deve ser localizado no caminho do sistema no diretório
de plug-ins. Os atributos class,
command e launcher são mutuamente exclusivos.
- launcher - o nome de uma classe que implementa org.eclipse.ui.IEditorLauncher.
Um ativador abrirá um editor externo. Os atributos class,
command e launcher são mutuamente exclusivos.
- contributorClass - o nome de uma classe que implementa org.eclipse.ui.IEditorActionBarContributor. Esse
atributo deve ser definido apenas se o atributo class estiver definido. Essa classe é utilizada para incluir novas ações no menu e na barra de ferramentas do workbench, refletindo os recursos do tipo de editor.
- default - se for true, esse editor será utilizado como o editor padrão para o tipo. Isso só será relevante onde mais de um editor for registrado para o mesmo tipo. Se um editor não for padrão para o tipo, ele ainda poderá ser iniciado com o submenu "Abrir com..."
do recurso selecionado.
Observe que esse atributo apenas é aceito para associações de nome de
arquivo e extensão nesse momento. Ele não será aceito para ligações
de tipo de conteúdo. A resolução baseada no tipo de conteúdo ocorrerá
em uma base de quem primeiro chega, primeiro é atendido e não é
explicitamente especificada.
- filenames - um campo opcional que contém a lista de nomes de arquivos entendidos pelo editor. Uma cadeia que contém nomes de arquivos separados por vírgula. Por exemplo, um editor que entenda documentos de hipertexto pode registrar-se como "ejb.htm, ejb.html".
- symbolicFontName - o nome simbólico de uma fonte. O nome simbólico de fonte deve ser o id de uma fonte definida (consulte org.eclipse.ui.fontDefinitions). Se esse atributo estiver ausente ou for inválido, o nome da fonte será o valor "org.eclipse.jface.textfont" no armazenamento de preferências do editor. Se não houver nenhum armazenamento de preferências ou a chave não estiver definida, a fonte de texto JFace será utilizada. A implementação do editor decidirá se esse nome simbólico de fonte será utilizado para definir a fonte.
- matchingStrategy - o nome de uma classe que implementa o org.eclipse.ui.IEditorMatchingStrategy. Esse
atributo deve ser definido apenas se o atributo class estiver definido. Isso permite que a extensão do editor forneça seu próprio algoritmo para correspondência da entrada de um de seus editores com uma entrada do editor fornecida.
<!ELEMENT contentTypeBinding EMPTY>
<!ATTLIST contentTypeBinding
contentTypeId CDATA #REQUIRED>
Anuncia que o editor que contém o conteúdo entende o tipo do conteúdo fornecido e é adequado para editar arquivos daquele tipo.
- contentTypeId - o identificador do tipo do conteúdo
Exemplos:
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"
extensions=
"xml"
class=
"com.xyz.XMLEditor"
contributorClass=
"com.xyz.XMLEditorContributor"
symbolicFontName=
"org.eclipse.jface.textfont"
default=
"false"
>
</editor>
</extension>
Informações sobre a 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 ativador for utilizado, o editor também será tratado como um programa externo. Nesse caso, a classe especificada deverá implementar org.eclipse.ui.IEditorLauncher.
O ativador será instanciado e então o arquivo abrir(IFile) será chamado para lançar o editor.
Se o atributo class for utilizado, o workbench presumirá que ele é um editor interno e a classe especificada deverá implementar org.eclipse.ui.IEditorPart.
Essa é uma prática comum de subclass org.eclipse.ui.EditorPart ao definir um novo tipo de editor. Também é necessário definir um atributo contributorClass.
A classe especificada deverá implementar org.eclipse.ui.IEditorActionBarContributor e será utilizada para incluir novas ações no menu e na barra de ferramentas do workbench, refletindo os recursos do tipo de editor.
No workbench, pode haver mais de um editor de um determinado tipo aberto. Por exemplo, pode haver um ou mais Editores Java abertos. Para evitar a criação de ações e imagens de ações duplicadas, o conceito de editor foi dividido em dois. IEditorActionBarContributor é responsável pela criação de ações. O editor é responsável pela implementação de ações. Além disso, o contribuidor é compartilhado por cada editor aberto. Como resultado dessa criação, há apenas um conjunto de ações para um ou mais editores abertos.
O contribuidor incluirá novas ações no menu e na barra de ferramentas do workbench, refletindo o tipo de editor. Essas ações serão compartilhadas e, quando chamadas, agirão de acordo com o editor ativo. O editor ativo será transmitido para o contribuidor chamando IEditorActionBarContributor.setActiveEditor.
Os identificadores de ações e grupos principais na janela do workbench são definidos em org.eclipse.ui.IWorkbenchActionConstants.
Eles devem ser utilizados como um ponto de referência para a inclusão de novas ações. Menus de nível superior são criados utilizando os seguintes valores para o atributo path:
-
additions - representa um grupo à esquerda do menu Janela.
As ações e os menus incluídos dentro desses caminhos somente serão mostrados enquanto o editor associado estiver ativo. Quando o editor for fechado, os menus e as ações serão removidos.
Implementação Fornecida:
O workbench
fornece um "Editor de Texto Padrão". 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.
Direitos Autorais (c) 2002, 2005 IBM Corporation e outros.
Todos os direitos reservados.
Este programa e os materiais que o acompanham são disponibilizados
sob os termos da Eclipse Public License v1.0 que acompanha esta
distribuição e estão disponíveis no endereço http://www.eclipse.org/legal/epl-v10.html