Página Extensões

A página Extensões é utilizada para procurar e editar extensões de plug-in. As extensões são o mecanismo central para contribuir com o comportamento da plataforma. A menos que seu plug-in seja uma biblioteca de API Java simples disponibilizada a outros plug-ins, o novo comportamento é contribuído com uma extensão.

Os plug-ins contribuem com os pontos de extensão definidos por esses plug-ins de que eles necessitam.  A sintaxe de sua extensão deve corresponder com a definição do ponto de extensão para ser processada corretamente. A lista total de pontos de extensão elegíveis é calculada pelo PDE que percorre todos os plug-ins visíveis (da área de trabalho e externos).

O assistente de extensão genérica fornecido pelo PDE simplesmente varrerá os pontos de extensão.  Se um esquema de extensão for fornecido (consulte Esquema do Ponto de Extensão), o assistente extrairá do esquema os metadados do ponto de extensão da gramática e da extensão.

Exemplo:  Incluindo uma extensão Conjuntos de Ações

Para ilustrar a operação da página Extensões, incluiremos uma ação 'Hello, PDE world' em nosso plug-in. Nós contribuiremos com o ponto de extensão org.eclipse.ui.actionSets .  Esse exemplo assume que você já está familiarizado com o ponto de extensão.  

Iniciaremos pressionando o botão Novo para selecionar o assistente de extensão:

O assistente Extensão Baseada no Esquema é o padrão desde que ele manipule as extensões nas formas mais genéricas. Ele varrerá os plug-ins e oferecerá todos os pontos de extensão encontrados, com ou sem esquemas. Os que têm esquemas permitirão que o PDE ofereça melhor assistência. Se estiver faltando um esquema do ponto de extensão, o PDE permitirá incluir elementos e atributos à extensão, mas não será capaz de verificar se eles são válidos para o ponto de extensão selecionado.

Ao pressionar Avançar, será oferecida uma lista de pontos de extensão. Selecione Conjuntos de Ações e pressione Concluir.

O assistente incluirá a nova extensão à lista de extensões. Como essa extensão possui um esquema associado a ela, podemos editar ainda nossa definição de extensão. Selecionamos a extensão incluída recentemente e escolhemos Novo->actionSet no menu popup. Esse elemento XML foi definido como o único elemento válido que pode aparecer na definição da extensão. 

Para todos os atributos necessários, o PDE criará valores padrão.  Podemos alterar o nome padrão do conjunto de ação para "Amostra do Conjunto de Ação" ao selecionar o elemento e alterar a propriedade de etiquera na exibição Propriedades. O novo nome aparecerá na lista de extensão. 

Agora precisamos definir um menu e uma ação para o conjunto de ação. Se selecionarmos o conjunto de ação e o menu popup na seção "Elemento da Extensão Filha" , o menu "Novo" oferecerá duas escolhas:  menu e ação.  Essas escolhas são baseadas nas informações do esquema para a extensão dos conjuntos de ação.  Primeiro, criamos o menu.

  1. Selecione Novo->menu para criar o menu.  

  2. Selecione-o e altere suas propriedades.  Altere o id para"sampleMenu" e sua etiqueta para "Menu Amostra."

  3. Enquanto o objeto do menu é selecionado, ative o menu e selecione Novo->separador. Um novo filho aparecerá.

  4. Selecione "separador" e altere seu nome para "sampleGroup". Esse procedimento criará um grupo nomeado no menu que podemos utilizar para contribuir com nossa ação.

Podemos criar a ação de maneira similar:

  1. Selecione Novo->ação para criar uma ação.  

  2. Selecione-a e altere suas propriedades.  Altere sua etiqueta para "&Amostra da Ação" e seu menubarPath para "sampleMenu/sampleGroup."  Esse procedimento incluirá a ação no menu que acabamos de definir.

A última coisa que precisamos definir é a classe Java da ação. A definição do ponto de extensão especifica que uma ação deve implementar  IWorkbenchWindowActionDelegate.   O PDE pode oferecer assistência desde que ele conheça essas informações a partir do esquema:

  1. Clique na propriedade classe para colocá-la no modo de edição. Selecione o botão para abrir o diálogo do editor de célula.

  2. Selecione o botão de rádio para criar uma nova classe.

  3. Clique no botão Procurar para escolher o contêiner de origem e escolha "Plugin XYZ".

  4. Altere o nome da classe para "SampleAction."

Antes de pressionar Concluir, o diálogo deve estar da seguinte forma:

Quando concluir, a nova classe será gerada com base na interface necessária (com uma implementação stub para cada método abstrato). Além disso, o nome da nova classe será definido para o valor da propriedade de classe. O assistente também abrirá a nova classe Java para edição por padrão. Você pode localizar o método "executar" e incluir a seguinte instrução:

System.out.println("Hello, PDE world!");

Salve o novo código fonte e feche o editor Java.  Em seguida, retorne à página Extensões do editor do manifest e salve-o.

Continuaremos com esse exemplo quando executarmos o plug-in.