desenvolvimento de plugins para eclipse - saads 2015
TRANSCRIPT
![Page 1: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/1.jpg)
Minicurso de Eclipse para o Desenvolvimento de Plugins
Gabriel Bronzatti [email protected]
Bacharel em Engenharia de Software
Rafhael Rodrigues [email protected]
Bacharel em Engenharia de SoftwareMestrando em Engenharia de Computação
V Semana Acadêmica de ADSAnálise e Desenvolvimento de Sistemas
![Page 2: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/2.jpg)
Parte I
![Page 3: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/3.jpg)
Roteiro
1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 4: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/4.jpg)
Roteiro
1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 5: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/5.jpg)
Plataforma Eclipse
➔ O que é?É um ambiente que fornece recursos da sua arquitetura
para a construção de plugins.
![Page 6: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/6.jpg)
Plataforma Eclipse
![Page 7: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/7.jpg)
Plataforma Eclipse
Ambiente principal da plataforma, fornece todos os recursos.
![Page 8: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/8.jpg)
Plataforma Eclipse
Biblioteca de interface gráfica da plataforma Eclipse.
![Page 9: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/9.jpg)
Plataforma Eclipse
Conjunto de ferramentas de interface gráfica da plataforma.
![Page 10: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/10.jpg)
Plataforma Eclipse
Espaço de trabalho do usuário, sistema de diretório que contém seus arquivos.
![Page 11: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/11.jpg)
Plataforma Eclipse
Recurso de manual de ajuda ao usuário.
![Page 12: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/12.jpg)
Plataforma Eclipse
Recurso oferecido pela plataforma para versionamento de itens do workspace do usuário.
![Page 13: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/13.jpg)
Plataforma Eclipse
Componente da plataforma utilizado para acionar os plugins do ambiente e interpretar seus arquivos de configuração
![Page 14: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/14.jpg)
Plataforma EclipseO que é um plugin?
O que é um plugin?
O que é um plugin?
![Page 15: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/15.jpg)
Plugin
➔ O que é?É uma parte de software que
utiliza recursos de um ambiente software para sua execução.
![Page 16: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/16.jpg)
Arquitetura de um Plugin Eclipse
![Page 17: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/17.jpg)
Arquitetura de um Plugin Eclipse
![Page 18: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/18.jpg)
Arquitetura de um Plugin Eclipse
Define as bibliotecas utilizadas pelo plugin (suas dependências).
![Page 19: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/19.jpg)
Arquitetura de um Plugin Eclipse
Define as informações necessárias para que o plugin possa ser executado.
![Page 20: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/20.jpg)
Roteiro
1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 21: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/21.jpg)
Roteiro
1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 22: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/22.jpg)
Ambiente de Desenvolvimento de Plugin➔ Pré-Requisitos:
- JDK 8:http://www.oracle.
com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Eclipse Mars: https://eclipse.org/mars/
- Rich Client Application Eclipse- WindowBuilder
![Page 23: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/23.jpg)
Instalando o Eclipse Mars
![Page 24: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/24.jpg)
Instalando o Eclipse Mars
![Page 25: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/25.jpg)
Instalando o E4 Tools
![Page 26: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/26.jpg)
Instalando o E4 Tools
![Page 27: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/27.jpg)
Instalando o E4 Tools
![Page 28: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/28.jpg)
Instalando o E4 Tools
![Page 29: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/29.jpg)
Instalando o WindowBuilder
![Page 30: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/30.jpg)
Roteiro
1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 31: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/31.jpg)
Roteiro
1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 32: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/32.jpg)
Conhecendo o Primeiro Template de Plugin
![Page 33: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/33.jpg)
![Page 34: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/34.jpg)
![Page 35: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/35.jpg)
![Page 36: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/36.jpg)
![Page 37: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/37.jpg)
![Page 38: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/38.jpg)
Se você quiser criar um aplicativo plugin marque YES, nesse exemplo vamos criar apenas um plugin componente.
![Page 39: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/39.jpg)
![Page 40: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/40.jpg)
O assistente de criação disponibiliza templates para criar o seu plugin.
Extensões indicam recursos utilizados da plataforma Eclipse.
![Page 41: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/41.jpg)
![Page 42: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/42.jpg)
![Page 43: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/43.jpg)
![Page 44: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/44.jpg)
Arquivo responsável por definir as configurações necessárias para que o ambiente Eclipse possa executá-lo.
Dependências (bibliotecas) que o Plugin utiliza.
Primeira instância de execução do plugin, define também seu ciclo de vida.
Define um treinador (handler), abstração de listener.
![Page 45: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/45.jpg)
plugin.xml
![Page 46: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/46.jpg)
plugin.xml
Execute o plugin por aqui:
![Page 47: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/47.jpg)
Resultado da Execução
![Page 48: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/48.jpg)
plugin.xml
Dependências utilizadas pelo plugin.
![Page 49: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/49.jpg)
plugin.xml
Extensões é quando um plugin utiliza a funcionalidade de outro plguin.
![Page 50: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/50.jpg)
Testem outros templates...
![Page 51: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/51.jpg)
Roteiro1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 52: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/52.jpg)
Roteiro1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 53: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/53.jpg)
Eclipse Rich Client Application (RCP)
➔ O que é?É uma plataforma para o
desenvolvimento de aplicações plugins.
Essas aplicações podem ser utilizadas de duas formas:● acopladas na IDE Eclipse;● como executável, o qual utilizará
os recursos empacotados da IDE Eclipse.
![Page 54: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/54.jpg)
Primeiro Projeto em Eclipse RCP
![Page 55: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/55.jpg)
![Page 56: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/56.jpg)
![Page 57: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/57.jpg)
![Page 58: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/58.jpg)
O OSGI fornece componentes para que a aplicação possa ser executada independente da plataforma Eclipse, como executável.
![Page 59: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/59.jpg)
![Page 60: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/60.jpg)
![Page 61: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/61.jpg)
![Page 62: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/62.jpg)
![Page 63: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/63.jpg)
![Page 64: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/64.jpg)
Através dele é possível projetar quais recursos de interface gráfica que serão utilizados. Esses recursos podem ser: menus, painéis, controladores, assistentes, botões e o layout base das interfaces.
Dependências (bibliotecas) que o Plugin utiliza.
Define as propriedades básicas do plugin.
Estilo padrão para plugins Eclipse
plugin.xml é o mesmo que o anterior
![Page 65: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/65.jpg)
Investigue um pouco sobre esses arquivos:
1. Application.e4xmi2. PrimeiroProjetoEmRCP.product
![Page 66: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/66.jpg)
Executando nosso primeiro projeto RCP:
![Page 67: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/67.jpg)
Executando nosso primeiro projeto RCP:
![Page 68: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/68.jpg)
Executando nosso primeiro projeto RCP:
![Page 69: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/69.jpg)
Continuação do Primeiro Projeto em RCP
➔ Problema Alvo:Um professor de matemática precisa de
uma ferramenta de software que calcule a área total das principais figuras (quadrado, triângulo,
retângulo, losângulo, etc) da geometria plana. Esse software será utilizado por alunos e deve
ter uma interface simples, para que eles possam através da inserção de parâmetros
calcular seus exercícios de geometria.
➔ Sua Tarefa:Construir um plugin executável para
resolver essa problemática.
![Page 70: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/70.jpg)
Primeiro PassoVamos construir a interface gráfica do nosso software, para isso vamos utilizar o plugin WindowBuilder...
![Page 71: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/71.jpg)
O Arquivo SimplePart define aquela interface que visualizamos quando executamos o nosso projeto.Agora vamos abrir esse arquivo com um editor de interface gráfica...
![Page 72: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/72.jpg)
Se caso ocorrer algum erro, vocês atualizem o ambiente em Help-> Check for Updates e instalem as dependências
![Page 73: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/73.jpg)
Utilizem a paleta de elementos para chegar a essa interface...
![Page 74: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/74.jpg)
Vamos criar uma classe responsável para calcular a área do nosso quadrado. Sabemos que a área de um quadrado pode ser calculada por lado².
![Page 75: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/75.jpg)
Vamos criar agora o código para o evento do nosso botão…Basta adicionar esse trecho de código em nossa classe SamplePart.
![Page 76: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/76.jpg)
Nosso primeiro resultado…Tente você agora, você pode consultar mais fórmulas, vamos ver…
Link:http://acessibilidade.bento.ifrs.edu.br/oa-03-html.php
![Page 77: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/77.jpg)
Primeiro Projeto em Eclipse RCP
https://github.com/tido4410/pluginExemploMinicursoEclipse.git
![Page 78: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/78.jpg)
Primeiro Projeto em Eclipse RCP
Vamos agora exportar um executável do nosso software...
![Page 79: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/79.jpg)
Primeiro Projeto em Eclipse RCP
![Page 80: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/80.jpg)
Primeiro Projeto em Eclipse RCP
https://www.sendspace.com/file/dry8n1
![Page 81: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/81.jpg)
Roteiro1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 82: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/82.jpg)
Roteiro1. Plataforma Eclipse2. Ambiente de Desenvolvimento de Plugin3. Conhecendo o Primeiro Template de Plugin4. Primeiro Projeto em Eclipse Rich Client Application (RCP)5. Links Úteis
![Page 83: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/83.jpg)
Links Úteis
http://www.vogella.com
http://www.eclipse.org/documentation/
http://www.ibm.com/developerworks/br/library/os-ecplug/
![Page 84: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/84.jpg)
Parte II
![Page 85: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/85.jpg)
Evolução da Programa● Programação Assembler - x86
● Programação Estruturada - Pascal, C
● Programação Orientada a Objetos - C ++, Java
● Componentes de Software - J2EE, .NET
● Orientada a Aspectos - AspectJ, Spring Framework AOP
● Arquiteturas Orientadas a Serviços - WSDL, SOAP
![Page 86: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/86.jpg)
Modelos● Até agora, a programação é sempre o centro das atenções..
● Como em outras obras de engenharia .. precisamos elevar o nível
de abstração.
● Modelos nos ajudam a construir sistemas mais complexos.
● Modelo: Descrição ou especificação (parte) de um sistema de
software a partir de um certo ponto de vista.
![Page 87: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/87.jpg)
Model-Driven Engineering● MDE ou Engenharia de Software Dirigida a Modelos é o “novo”
enfoque da área de ES.
● Utilização de modelos como artefatos de software.
● Pode-se ter editores, otimizadores, validadores e compiladores
baseados em modelos.
● objetivo do modelo é facilitar o trabalho e reduzir o tempo de
desenvolvimento e o número de erros do software.
![Page 88: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/88.jpg)
Aplicações MDE● Model-Driven Development (MDD)
● Engenharia Reversa
● Software Process Engineering (SPE)
● Domain Specific Language (DSL)
● Model-Driven Integration (MDI)
![Page 89: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/89.jpg)
Domain Specific Languages (DSL)● Desenvolvimento de linguagens visuais e textuais
![Page 90: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/90.jpg)
Domain Specific Languages (DSL)● Modelos gráficos, como UML, também podem ser representados
de forma textual.
![Page 91: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/91.jpg)
Domain Specific Languages (DSL)● DSL classificasse da seguinte forma:
○ Representação■ Visual■ Textual
○ Implementação■ Interno■ Externo
![Page 92: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/92.jpg)
Domain Specific Languages (DSL)● DSL textuais Internos:
○ Usam a infra-estrutura de uma linguagem de programação existente.
○ Na maioria dos casos, são implementados como bibliotecas na linguagem de programação.
○ Exemplo: Rails - Construido sobre a base da linguagem Ruby.
![Page 93: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/93.jpg)
Domain Specific Languages (DSL)● DSL textuais externos:
○ Não utilizam como base nenhuma linguagem de programação já existente.
○ Desenvolvidos a partir do zero.○ Necessitam ser construídos com os estágios básicos de um
compilador.○ No entanto, não precisam de toda a complexidade envolvida
em uma linguagem de uso geral.
![Page 94: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/94.jpg)
Domain Specific Languages (DSL)● DSL visuais internos:
○ Muitos problemas de engenharia de software são analisados e interpretados utilizando modelos gráficos melhores.
○ UML oferece um mecanismo de extensão (perfis) para personalizar modelos para domínios e plataformas específicas.
○ Os perfils não mudam a semântica da UML, e sim estendêm-a.○ São implementados usando estereótipos e restrições de
definição tag.
![Page 95: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/95.jpg)
Domain Specific Languages (DSL)● DSL visuais externos:
○ Linguagens visuais são mais fáceis de analisar do que a textual.
○ No entanto, a UML e os perfils baseados nela, não são tão intuitivos para usuários não-técnicos.
○ Portanto, as linguagens gráficas devem ser adequadas ao tipo de modelagem semântica que se pretende resolver.
○ O desenvolvimento desse tipo de linguagem é muitas vezes mais complexo do que um texto.
![Page 96: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/96.jpg)
Ferramentas de Desenvolvimento de DSL● Para apoiar as fases de desenvolvimento de um DSL, precisamos
de ferramentas para nos ajudar neste processo.
● Enfoque Tradicional○ Flex, BISON, ANTLR, etc.
● Enfoque model-driven○ Eclipse (Modeling Project)○ MS Visual Studio (DSL Tools)○ MetaEdit +, etc
![Page 97: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/97.jpg)
Ferramentas de Desenvolvimento de DSL● Eclipse: Editor Textual
○ Eclipse é um ambiente de programação para Java, embora tenha de trabalhar com outras extensões de linguagens como PHP, XML, etc. Também permite trabalhar com DSLs criados pelo usuário.
![Page 98: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/98.jpg)
Ferramentas de Desenvolvimento de DSL● Eclipse: Editor Visual
○ Eclipse permite trabalhar com modelos visuais baseados em UML ou DSLs criadas pelos usuários.
![Page 99: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/99.jpg)
E como podemos desenvolver DSLs
usando MDE?
![Page 100: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/100.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um formato de representação
Geração das Transformações
![Page 101: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/101.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um formato de representação
Geração das Transformações
![Page 102: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/102.jpg)
Desenvolvimento DSL com enfoque MDE
Projeto do Metamodelo:
● Metamodelagem é a análise, concepção e construção da meta necessária para cobrir um certo tipo de problema, bem como as suas regras e restrições.
● Metamodelo: um conjunto de conceitos de domínio para modelar (metaclasses) e as relações entre eles (metaassociações).
![Page 103: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/103.jpg)
Desenvolvimento DSL com enfoque MDE
Projeto do Metamodelo:
● O objetivo é definir os conceitos e relações do domínio do problema que queremos abordar através de um diagrama de classes.
● Se define o metamodelo de forma abstrata, independentemente do formato de representação desejado.
● Metamodelos definem a sintaxe abstrata da linguagem a ser utilizada.
![Page 104: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/104.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um formato de representação
Geração das Transformações
![Page 105: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/105.jpg)
Desenvolvimento DSL com enfoque MDE
Desenvolvimento de uma forma de representação:
● Como irá ser representado os elementos do metamodelo? Qual é o formato mais adequado para presentar nosso DSL?
● Qual é o tipo de problema que deseja-se modelar? Quem serão os usuários da linguagem?
● Linguagens visuais são mais fáceis de interpretar, mas as textuais geralmente são mais expressivas.
![Page 106: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/106.jpg)
Desenvolvimento DSL com enfoque MDE
Desenvolvimento de uma forma de representação:
● Tem que se definir a sintaxe concreta para a nossa “nova linguagem”:
○ Textual: Baseada em uma gramática (tipo EBNF)○ Visual: Baseada em um mapeamento entre elementos
gráficos e o nosso metamodelo.
![Page 107: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/107.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um formato de representação
Geração das Transformações
![Page 108: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/108.jpg)
Desenvolvimento DSL com enfoque MDE
Geração das Transformações:
● DSLs são projetados para preencher uma necessidade e automatizar tarefas.
● Os modelos criados com a nossa DSL devem ser compilados.● Motores de processamento MDE serão nossos processadores de
linguagem.● As transformações são definidas por um conjunto de regras.
![Page 109: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/109.jpg)
Desenvolvimento DSL com enfoque MDE
Geração das Transformações:● As mudanças permitem ‘evoluir’ os modelos:
○ Modelo a Modelo (M2M)
■ Mesmo modelo:
● Refatoração ou aplicação de um padrão de projeto
■ Modelo diferente:
● Derivação de um diagrama de classes para um
framework J2EE a partir de um modelo E/R.
![Page 110: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/110.jpg)
Desenvolvimento DSL com enfoque MDE
Geração das Transformações:● As mudanças permitem ‘evoluir’ os modelos:
○ Modelo a a texto (M2T)
■ Transformação de um diagrama de classes de um projeto
MVC em um conjunto de classes na linguagem Java.
![Page 111: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/111.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do Editor
Projeto do Metamodelo
Desenvolvimento de um formato de representação
Geração das Transformações
![Page 112: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/112.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do editor:● Precisa-se de uma abordagem integrada que nos permita fazer
modelos, usando o nosso idioma de ambiente.
● Existem diferentes tipos de editores:○ Editores baseados em árvores○ Editores visuais○ Editores textuais
![Page 113: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/113.jpg)
Desenvolvimento DSL com enfoque MDE
Construção do editor:● Como podemos fazer uso de uma DSL sem levar em consideração
o formato de representação?○ Editores baseados em árvores
● Como utilizar nossos DSL visuais?● Não nos serve somente um programa de desenhos. E processar
imagens digitais é um processo complicado..● Precisamos de um ambiente de projeto que nos ofereça, entre
outros:○ Paleta de componentes visuais○ Área de desenho○ Validação automática de modelos
![Page 114: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/114.jpg)
Conhecendo o GMF e colocando a mão na massa..
![Page 115: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/115.jpg)
Graphical Modeling Framework (GMF)
➔ O que é?É um plugin que permite a construção de editores
gráficos de modelagem para a plataforma Eclipse.
![Page 116: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/116.jpg)
Graphical Modeling Framework
![Page 117: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/117.jpg)
Graphical Modeling Framework
Depois da instalação, o Eclipse
irá reiniciar o
ambiente...
![Page 118: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/118.jpg)
Primeiro Projeto em GMF
![Page 119: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/119.jpg)
Continuação do Primeiro Projeto em RCP
➔ Problema Alvo:Um professor de computação quer mostrar
aos seus alunos o princípio básico de um grafo orientado.
➔ Sua Tarefa:Construir um editor de modelagem que
permita a construção de um diagrama simples de grafo orientado. O qual contém um tipo de
nó e um tipo de relacionamento.
![Page 120: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/120.jpg)
Primeiro Projeto em GMF
![Page 121: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/121.jpg)
Primeiro Projeto em GMF
![Page 122: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/122.jpg)
Primeiro Projeto em GMF
![Page 123: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/123.jpg)
Primeiro Projeto em GMF
![Page 124: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/124.jpg)
Primeiro Projeto em GMFO Dashboard orienta a construção do nosso editor de modelagem...
![Page 125: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/125.jpg)
Primeiro Projeto em GMF1º Passo: vamos criar nosso ecore
![Page 126: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/126.jpg)
Primeiro Projeto em GMF
![Page 127: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/127.jpg)
Primeiro Projeto em GMF
Selecione o item que está em baixo do platform://res..E abra a aba Properties do Eclipse, para definir por ela as propriedades.
![Page 128: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/128.jpg)
Primeiro Projeto em GMF
Aqui criamos um EClass e atribuimos a ele um nome.
![Page 129: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/129.jpg)
Primeiro Projeto em GMF
Em nosso projeto, precisamos de três EClass...
![Page 130: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/130.jpg)
Primeiro Projeto em GMF
Um EReference define um tipo de relacionamento… A propriedade Containment define se esse é uma agregação, já o Upper Bound quando está em -1, define uma multiplicidade para muitos (n).
![Page 131: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/131.jpg)
Primeiro Projeto em GMF
![Page 132: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/132.jpg)
Primeiro Projeto em GMF
![Page 133: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/133.jpg)
Primeiro Projeto em GMF
![Page 134: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/134.jpg)
Primeiro Projeto em GMF
Um EAttribute define um tipo de atributo que o nó do diagrama irá conter…
![Page 135: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/135.jpg)
Primeiro Projeto em GMF
Vamos gerar uma representação gráfica do nosso ecore...
![Page 136: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/136.jpg)
Primeiro Projeto em GMF
![Page 137: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/137.jpg)
Primeiro Projeto em GMF
![Page 138: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/138.jpg)
Primeiro Projeto em GMF
![Page 139: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/139.jpg)
Primeiro Projeto em GMF
![Page 140: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/140.jpg)
Primeiro Projeto em GMF
![Page 141: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/141.jpg)
Primeiro Projeto em GMF
![Page 142: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/142.jpg)
Primeiro Projeto em GMF
![Page 143: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/143.jpg)
Primeiro Projeto em GMF
Agora já temos o código base do nosso editor de modelagem...
![Page 144: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/144.jpg)
Primeiro Projeto em GMF
![Page 145: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/145.jpg)
Primeiro Projeto em GMF
![Page 146: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/146.jpg)
Primeiro Projeto em GMF
![Page 147: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/147.jpg)
Primeiro Projeto em GMF
![Page 148: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/148.jpg)
Primeiro Projeto em GMF
NóRelacionamento
![Page 149: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/149.jpg)
Primeiro Projeto em GMF
Aqui definimos a paleta de elementos gráficos do nosso editor.
![Page 150: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/150.jpg)
Primeiro Projeto em GMF
Vocês podem criar no paint ícones para a palieta. Essas imagens devem estar em formato ‘GIF’ e elas tem que ter no máximo 16px de largura e altura.
![Page 151: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/151.jpg)
Primeiro Projeto em GMF
Primeiramente apague os itens Default Image dos menus e acrescente os Bundles.
![Page 152: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/152.jpg)
Primeiro Projeto em GMF
![Page 153: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/153.jpg)
Primeiro Projeto em GMF
![Page 154: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/154.jpg)
Primeiro Projeto em GMF
![Page 155: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/155.jpg)
Primeiro Projeto em GMF
Façam a mesma coisa para o Creation Tool Edge, só que aponte o camingo do ícone respectivo.
![Page 156: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/156.jpg)
Primeiro Projeto em GMF
![Page 157: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/157.jpg)
Primeiro Projeto em GMF
![Page 158: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/158.jpg)
Primeiro Projeto em GMF
![Page 159: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/159.jpg)
Primeiro Projeto em GMF
Atributo
![Page 160: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/160.jpg)
Primeiro Projeto em GMF
Vamos agora apagar o Rectangle NodeFigure, pois é uma elipse o nó do nosso grafo.
![Page 161: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/161.jpg)
Primeiro Projeto em GMF
![Page 162: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/162.jpg)
Primeiro Projeto em GMF
![Page 163: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/163.jpg)
Primeiro Projeto em GMF
![Page 164: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/164.jpg)
Primeiro Projeto em GMF
![Page 165: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/165.jpg)
Primeiro Projeto em GMF
![Page 166: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/166.jpg)
Primeiro Projeto em GMF
![Page 167: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/167.jpg)
Primeiro Projeto em GMF
Dentro do Polygon Decoration, vamos ter que definir três Template Points, para moldar a ponta da nossa seta de relacionamento.
![Page 168: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/168.jpg)
Primeiro Projeto em GMF
![Page 169: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/169.jpg)
Primeiro Projeto em GMF
![Page 170: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/170.jpg)
Primeiro Projeto em GMF
![Page 171: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/171.jpg)
Primeiro Projeto em GMF
![Page 172: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/172.jpg)
Primeiro Projeto em GMF
![Page 173: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/173.jpg)
Primeiro Projeto em GMF
![Page 174: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/174.jpg)
Primeiro Projeto em GMF
![Page 175: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/175.jpg)
Primeiro Projeto em GMF
![Page 176: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/176.jpg)
Primeiro Projeto em GMF
![Page 177: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/177.jpg)
Primeiro Projeto em GMF
![Page 178: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/178.jpg)
Primeiro Projeto em GMF
![Page 179: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/179.jpg)
Primeiro Projeto em GMF
![Page 180: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/180.jpg)
Primeiro Projeto em GMF
![Page 181: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/181.jpg)
Primeiro Projeto em GMF
![Page 182: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/182.jpg)
Primeiro Projeto em GMF
![Page 183: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/183.jpg)
Primeiro Projeto em GMF
![Page 184: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/184.jpg)
Primeiro Projeto em GMF
![Page 185: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/185.jpg)
Primeiro Projeto em GMFAqui está nosso editor, vamos agora executar ele...
![Page 186: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/186.jpg)
Primeiro Projeto em GMF
![Page 187: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/187.jpg)
Primeiro Projeto em GMF
![Page 188: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/188.jpg)
Primeiro Projeto em GMF
![Page 189: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/189.jpg)
Primeiro Projeto em GMF
![Page 190: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/190.jpg)
Primeiro Projeto em GMF
![Page 191: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/191.jpg)
Primeiro Projeto em GMF
![Page 192: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/192.jpg)
![Page 193: Desenvolvimento de Plugins para Eclipse - SAADS 2015](https://reader034.vdocuments.pub/reader034/viewer/2022051404/587d7a8e1a28ab634b8b6211/html5/thumbnails/193.jpg)
https://github.com/tido4410/pluginExemploMinicursoEclipse.git
Primeiro Projeto em GMF