Editores Internos e Externos

Identificador: org.eclipse.ui.editors

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"

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"
         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:

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" 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.

Copyright IBM Corp. 2000, 2001.  Todos os Direitos Reservados.