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.
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.
Selecione Novo->menu para criar o menu.
Selecione-o e altere suas propriedades. Altere o id para"sampleMenu" e sua etiqueta para "Menu Amostra."
Enquanto o objeto do menu é selecionado, ative o menu e selecione Novo->separador. Um novo filho aparecerá.
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:
Selecione Novo->ação para criar uma ação.
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:
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.
Selecione o botão de rádio para criar uma nova classe.
Clique no botão Procurar para escolher o contêiner de origem e escolha "Plugin XYZ".
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.