194
Minicurso de Eclipse para o Desenvolvimento de Plugins Gabriel Bronzatti Moro [email protected] Bacharel em Engenharia de Software Rafhael Rodrigues Cunha [email protected] Bacharel em Engenharia de Software Mestrando em Engenharia de Computação V Semana Acadêmica de ADS Análise e Desenvolvimento de Sistemas

Desenvolvimento de Plugins para Eclipse - SAADS 2015

Embed Size (px)

Citation preview

Page 1: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Parte I

Page 3: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

Plataforma Eclipse

Page 7: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Plataforma Eclipse

Ambiente principal da plataforma, fornece todos os recursos.

Page 8: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Plataforma Eclipse

Biblioteca de interface gráfica da plataforma Eclipse.

Page 9: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Plataforma Eclipse

Conjunto de ferramentas de interface gráfica da plataforma.

Page 10: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Plataforma Eclipse

Recurso de manual de ajuda ao usuário.

Page 12: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Plataforma Eclipse

Recurso oferecido pela plataforma para versionamento de itens do workspace do usuário.

Page 13: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Plataforma EclipseO que é um plugin?

O que é um plugin?

O que é um plugin?

Page 15: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Arquitetura de um Plugin Eclipse

Page 17: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Arquitetura de um Plugin Eclipse

Page 18: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Arquitetura de um Plugin Eclipse

Define as bibliotecas utilizadas pelo plugin (suas dependências).

Page 19: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

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

Instalando o Eclipse Mars

Page 24: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Instalando o Eclipse Mars

Page 25: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Instalando o E4 Tools

Page 26: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Instalando o E4 Tools

Page 27: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Instalando o E4 Tools

Page 28: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Instalando o E4 Tools

Page 29: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Instalando o WindowBuilder

Page 30: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

Conhecendo o Primeiro Template de Plugin

Page 33: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 34: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 35: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 36: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 37: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 38: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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
Page 40: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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
Page 42: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 43: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 44: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

plugin.xml

Page 46: Desenvolvimento de Plugins para Eclipse - SAADS 2015

plugin.xml

Execute o plugin por aqui:

Page 47: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Resultado da Execução

Page 48: Desenvolvimento de Plugins para Eclipse - SAADS 2015

plugin.xml

Dependências utilizadas pelo plugin.

Page 49: Desenvolvimento de Plugins para Eclipse - SAADS 2015

plugin.xml

Extensões é quando um plugin utiliza a funcionalidade de outro plguin.

Page 50: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Testem outros templates...

Page 51: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

Primeiro Projeto em Eclipse RCP

Page 55: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 56: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 57: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 58: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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
Page 60: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 61: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 62: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 63: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 64: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Investigue um pouco sobre esses arquivos:

1. Application.e4xmi2. PrimeiroProjetoEmRCP.product

Page 66: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Executando nosso primeiro projeto RCP:

Page 67: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Executando nosso primeiro projeto RCP:

Page 68: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Executando nosso primeiro projeto RCP:

Page 69: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

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

Utilizem a paleta de elementos para chegar a essa interface...

Page 74: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

Primeiro Projeto em Eclipse RCP

https://github.com/tido4410/pluginExemploMinicursoEclipse.git

Page 78: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em Eclipse RCP

Vamos agora exportar um executável do nosso software...

Page 79: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em Eclipse RCP

Page 80: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em Eclipse RCP

https://www.sendspace.com/file/dry8n1

Page 81: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

Parte II

Page 85: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

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

Domain Specific Languages (DSL)● Desenvolvimento de linguagens visuais e textuais

Page 90: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

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

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

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

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

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

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

E como podemos desenvolver DSLs

usando MDE?

Page 100: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Conhecendo o GMF e colocando a mão na massa..

Page 115: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Graphical Modeling Framework

Page 117: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Graphical Modeling Framework

Depois da instalação, o Eclipse

irá reiniciar o

ambiente...

Page 118: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 119: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Page 121: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 122: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 123: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 124: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMFO Dashboard orienta a construção do nosso editor de modelagem...

Page 125: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF1º Passo: vamos criar nosso ecore

Page 126: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 127: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Aqui criamos um EClass e atribuimos a ele um nome.

Page 129: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Em nosso projeto, precisamos de três EClass...

Page 130: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Page 132: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 133: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 134: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Vamos gerar uma representação gráfica do nosso ecore...

Page 136: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 137: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 138: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 139: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 140: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 141: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 142: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 143: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Page 145: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 146: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 147: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 148: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

NóRelacionamento

Page 149: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Aqui definimos a paleta de elementos gráficos do nosso editor.

Page 150: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

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

Primeiro Projeto em GMF

Page 153: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 154: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 155: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Page 157: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 158: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 159: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Atributo

Page 160: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Page 162: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 163: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 164: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 165: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 166: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 167: Desenvolvimento de Plugins para Eclipse - SAADS 2015

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

Primeiro Projeto em GMF

Page 169: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 170: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 171: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 172: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 173: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 174: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 175: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 176: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 177: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 178: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 179: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 180: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 181: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 182: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 183: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 184: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 185: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMFAqui está nosso editor, vamos agora executar ele...

Page 186: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 187: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 188: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 189: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 190: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 191: Desenvolvimento de Plugins para Eclipse - SAADS 2015

Primeiro Projeto em GMF

Page 192: Desenvolvimento de Plugins para Eclipse - SAADS 2015
Page 193: Desenvolvimento de Plugins para Eclipse - SAADS 2015

https://github.com/tido4410/pluginExemploMinicursoEclipse.git

Primeiro Projeto em GMF