Roteiros para os exemplos utilizados durante o curso

Tamanho: px
Começar a partir da página:

Download "Roteiros para os exemplos utilizados durante o curso"

Transcrição

1 WebMedia 2009 Minicurso 3: Desenvolvimento Web Orientado a Modelos: Conceitos, Ferramentas e Técnicas Daniel Lucrédio Thiago Jabur Bittar Renata Pontin de Mattos Fortes ICMC USP São Carlos/SP Roteiros para os exemplos utilizados durante o curso Software utilizado: - Eclipse Modeling Tools - Build (Galileo) - Xtext Antlr Support update site: - Eclipse Data Tools Platform Enablement update site: - Eclipse Web Tools Platform update site: 06 de outubro de 2009

2 Exemplo 1 Objetivo: Demonstrar como usar Xtext para criar uma linguagem textual, e criar um interpretador simples baseado em EMF 1. Criar novo projeto xtext 1.1. name = webmedia.mc3.exemplo language = webmedia.mc3.math 1.3. file extension = math 1.4. Mandar criar o generator project 2. O arquivo Math.xtext irá aparecer 3. Definir a seguinte gramática para uma linguagem matemática simples grammar webmedia.mc3.math with org.eclipse.xtext.common.terminals generate math "http://www.mc3.webmedia/math" Problema : (expressoes += Expressao)*; Expressao : Armazena Operacao; Armazena : Operacao : 'Armazene' termo=int; sinal=sinalmatematico termo=int; enum SinalMatematico : SOMA = '+' SUBTRACAO = '-' MULTIPLICACAO = '*' DIVISAO = '/'; 4. Observar que no Xtext que sintaxe abstrata e concreta é junto 5. Gerar o plug-in da linguagem 5.1. Clicar com botão direito sobre o arquivo: src/webmedia.mcr/generatemath.mwe 5.2. Escolher Run As -> MWE Workflow 6. Observar que foi gerado o metamodelo OO correspondente: src-gen/webmedia.mc3/math.ecore 6.1. Para visualizar melhor o metamodelo, clicar com botão direito sobre o arquivo.ecore e escolher Initialize Ecore Diagram File Fazer deploy do plug-in 7.1. Clicar com botão direito no projeto e escolher Export 7.2. Mandar exportar como Deployable plug-ins and fragments os projetos webmedia.mc3.exemplo1 e webmedia.mc3.exemplo1.ui Ao exportar, escolher a opção arquivos.jar Escolha uma pasta qualquer para exportar os arquivos 7.3. Copiar a pasta gerada dentro da pasta do eclipse e reiniciar o ambiente 8. Abrir o arquivo de testes (src/model/mymodel.math) no generator project (webmedia.mc3.exemplo1.generator) e testar o editor 9. Fazer um interpretador 9.1. Comentar as linhas para geração de código, e adicionar uma linha no final do arquivo de workflow do generator project (MathGenerator.mwe), conforme a seguir:

3 <workflow>... <!-- <component class="org.eclipse.xpand2.generator"> <metamodel class="org.eclipse.xtend.typesystem.emf.emfregistrymetamodel"/> <fileencoding value="cp1252"/> <expand value="templates::template::main FOR model"/> <genpath value="${targetdir"/> </component> --> <component class="math.executa" /> </workflow> 9.2. Criar nova classe (math.executa) no pacote src do generator project que estende AbstractWorkflowComponent 9.3. Mandar o Eclipse adicionar os métodos não implementados 9.4. Adicionar a seguinte implementação ao método invokeinternal protected void invokeinternal(workflowcontext ctx, ProgressMonitor monitor, Issues issues) { EObject model = (EObject) ctx.get("model"); Problema problema = (Problema) model; float resultado = 0; for (Expressao expressao : problema.getexpressoes()) { int valor = expressao.gettermo(); if (expressao instanceof Armazena) { System.out.println(" Armazena " + valor); resultado = valor; else { Operacao operacao = (Operacao) expressao; switch (operacao.getsinal()) { case SOMA: System.out.println(" Soma " + valor); resultado = resultado + valor; break; case SUBTRACAO: System.out.println(" Subtrai " + valor); resultado = resultado - valor; break; case DIVISAO: System.out.println(" Divide " + valor); resultado = resultado / valor; break; case MULTIPLICACAO: System.out.println(" Multiplica " + valor); resultado = resultado * valor; break; System.out.println("=" + resultado); 9.5. Rodar o exemplo Clicar com botão direito sobre MathGenerator.mwe Escolher Run As -> MWE Workflow

4 Exemplo 2 Objetivo: Demonstrar como usar GMF para criar uma linguagem visual, e criar um interpretador simples baseado em EMF 1. Criar novo projeto GMF 1.1. name = webmedia.mc3.exemplo Mandar mostrar a dashboard 1.3. Mover a pasta model para dentro da pasta src 2. Criar um Domain Model(usando o dashboard), dentro da pasta model, chamado questionario.ecore 3. Inicializar diagrama ecore para editar mais facilmente 3.1. Clicar com botão direito sobre questionario.ecore e escolher Initialize Ecore Diagram File... (Não utilizar Initialize ecore_diagram diagram file ) 4. Criar o metamodelo 4.1. Se não estiver aparecendo, mandar mostrar a properties view 4.2. Clicar em qualquer lugar do diagrama, e setar as propriedades: Name: questionario Ns Prefix: questionarionsprefix Ns URI: questionarionsuri 4.3. Criar o seguinte metamodelo 5. Derivar o Domain Gen Model (usando o dashboard) e gerar o código EMF 5.1. Abrir o genmodel gerado 5.2. Clicar sobre o elemento raiz (Questionario) com o botão direito e escolher Generate All 6. Derivar o Graphical Def Model (usando o dashboard) 6.1. Escolher Questionario como Diagram Element 6.2. Na tela de definição gráfica, escolher as seguintes opções:

5 7. Derivar o Tooling Def Model (usando o dashboard) 7.1. Escolher Questionario como Diagram Element 7.2. Na tela de definição das ferramentas, escolher as seguintes opções: 8. Combinar o Graphical e Tooling Def Models no Mapping Model (usando o dashboard) 8.1. Escolher Questionario como elemento do canvas mapping 8.2. Seguir até o fim 8.3. Após o gmfmap ser criado, expandir o Link Mapping e clicar sobre o nó filho Feature Label Mapping false 8.4. Na propriedade Diagram Label escolher Diagram Label RespostaTexto 9. Transformar o Mapping Model em Diagram Editor Gen Model (usando o dashboard) 9.1. Aguardar, pois não é exibida nenhuma janela nesse último passo 10. Mandar gerar o editor de diagramas Clicar sobre Generate diagram editor no dashboard 11. Fazer deploy Clicar com botão direito no projeto e escolher Export Mandar exportar como Deployable plug-ins and fragments todos os projetos webmedia.mc3.exemplo2*.* Usar a opção de exportar para arquivos.jar No campo Qualifier replacement, inserir noqualifier Copiar a pasta gerada dentro da pasta do eclipse e reiniciar o ambiente 12. Testar o editor criado Criar um novo Xpand Project nome = webmedia.mc3.exemplo2.generator Create a sample = true Criar um novo arquivo do diagrama Clicar com botão direito no pacote src, escolher New -> Example... -> Questionario diagram Testar o editor, criando um questionario 14. Embelezar o diagrama Trocar os ícones Sair do eclipse, remover os arquivos.jar do plug-in e iniciar novamente Substituir os ícones novos da pasta icons/full/obj16 do projeto webmedia.mc3.exemplo2.edit Exportar os plug-ins novamente e testar Colocar seta na resposta No gmfgraph, adicionar um filho Polyline Decoration ao nó Polyline Connection RespostaFigure Clicar sobre o elemento recém-criado e colocar no campo Name o valor Seta Clicar sobre o elemento Polyline Connection RespostaFigure e escolher para a propriedade Target decoration o valor Polyline Decoration Seta Refazer os passos Transform e Generate diagram editor do dashboard Exportar os plug-ins novamente e testar

6 15. Fazer um interpretador Configurar o arquivo de workflow (src/workflow/generator.mwe) do projeto webmedia.mc3.exemplo2.generator: <workflow> <property name="model" value="webmedia.mc3.exemplo2.generator/src/default.questionario" /> <!-- set up EMF for standalone execution --> <bean class="org.eclipse.emf.mwe.utils.standalonesetup" > <platformuri value=".."/> <RegisterGeneratedEPackage value="questionario.questionariopackage"/> </bean> <!-- load model and store it in slot 'model' --> <component class="org.eclipse.emf.mwe.utils.reader"> <uri value="platform:/resource/${model" /> <modelslot value="model" /> </component> <component class="questionario.executa" /> </workflow> Configurar as dependências do projeto Abrir o arquivo META-INF/MANIFEST.MF Na aba de dependências, adicionar os seguintes plug-ins como required: - webmedia.mc3.exemplo2 - org.eclipse.emf.mwe.utils Criar nova classe (questionario.executa) no pacote src, estendendo AbstractWorkflowComponent Mandar o Eclipse adicionar os métodos não implementados Adicionar a seguinte implementação ao método invokeinternal protected void invokeinternal(workflowcontext ctx, ProgressMonitor monitor,issues issues) { EObject model = (EObject) ctx.get("model"); Questionario questionario = (Questionario)model; Item itematual = null; for(item i: questionario.getperguntas()) { if(i.isinicio()) { itematual = i; break; if(itematual == null) { issues.adderror("não existe mensagem definida como inicial!"); return; System.out.println(itemAtual.getMensagem()); Scanner console = new Scanner(System.in); while(!itematual.isfim()) { for(int i=1;i<=itematual.getalternativas().size();i++) { Resposta r = itematual.getalternativas().get(i-1); System.out.println(i+") "+r.gettexto()); System.out.println("Digite sua resposta"); int opcao = console.nextint(); itematual = itematual.getalternativas().get(opcao- 1).getProximaPergunta(); System.out.println(itemAtual.getMensagem()); System.out.println("Fim do questionário"); Rodar o arquivo generator.mwe

7 Exemplo 3 Objetivo: Demonstrar como fazer uma transformação declarativa utilizando xtend 1. Copiar projeto webmedia.mc3.exemplo1.generator 1.1. Novo nome = webmedia.mc3.exemplo3 2. Modificar arquivo Extensions.ext para incluir as regras transforma(problema problema) : problema.expressoes.typeselect(armazena).incrementaarmazena() -> problema.expressoes.typeselect(operacao).trocasomaporsubtracao() -> problema.adicionaexpressao() ; incrementaarmazena (Armazena armazena) : armazena.settermo(armazena.termo + 10) ; trocasomaporsubtracao (Operacao operacao) : if(operacao.sinal == SinalMatematico::SOMA) then operacao.setsinal(sinalmatematico::subtracao) ; adicionaexpressao(problema problema): let e = new Operacao: e.setsinal(sinalmatematico::soma) -> e.settermo(1234) -> problema.expressoes.add(e) ; 3. Adicionar o seguinte trecho ao workflow (antes do math.executa) <component class="org.eclipse.xtend.xtendcomponent"> <metamodel class="org.eclipse.xtend.typesystem.emf.emfmetamodel"> <metamodelpackage value="webmedia.mc3.math.mathpackage" /> </metamodel> <invoke value="templates::extensions::transforma(model)"/> </component> 4. Rodar o workflow

8 Exemplo 4 Objetivo: Demonstrar como fazer uma transformação procedural utilizando EMF 1. Copiar projeto webmedia.mc3.exemplo2.generator 1.1. Novo nome = webmedia.mc3.exemplo4 2. Criar dentro do pacote src uma classe questionario.transforma, que estende AbstractWorkflowComponent 2.1. Inserir o seguinte conteúdo no método protected void invokeinternal(workflowcontext ctx, ProgressMonitor monitor, Issues issues) { EObject model = (EObject) ctx.get("model"); Questionario questionario = (Questionario)model; Item iteminicial = null; for(item i: questionario.getperguntas()) { if(i.isinicio()) { iteminicial = i; break; if(iteminicial == null) { issues.adderror("não existe mensagem definida como inicial!"); return; for(item i: questionario.getperguntas()) { if(!i.isinicio() &&!i.isfim()) { Resposta r = QuestionarioFactory.eINSTANCE.createResposta(); r.settexto("voltar ao início"); r.setproximapergunta(iteminicial); i.getalternativas().add(r); 3. Adicionar a chamada para a nova classe criada, no final arquivo de workflow, antes do componente Executa, e modificar o começo do arquivo para apontar para o projeto atual <workflow> <property name="model" value="webmedia.mc3.exemplo4/src/default.questionario" />... <component class="questionario.transforma" /> <component class="questionario.executa" /> </workflow> 4. Rodar o workflow

9 Exemplo 5 Objetivo: Demonstrar como gerar código utilizando xpand 1. Copiar projeto webmedia.mc3.exemplo Novo nome = webmedia.mc3.exemplo5 2. Colocar o seguinte conteúdo no arquivo src/templates/template.xpt «IMPORT math»; «EXTENSION templates::extensions» «DEFINE main FOR Problema-» «FILE "CodigoGerado.java"-» public class CodigoGerado { public static void main(string args[]) { double resultado = 0; «FOREACH this.expressoes AS expressao-» «IF expressao.metatype == Armazena-» resultado = «expressao.termo»; «ELSE-» resultado = resultado «((Operacao)expressao).sinal» «expressao.termo»; «ENDIF-» «ENDFOREACH-» System.out.println("O resultado é "+resultado); «ENDFILE-» «ENDDEFINE» 3. Descomentar o componente do xpand Generator no arquivo de workflow: <workflow>... <component class="org.eclipse.xpand2.generator"> <metamodel class="org.eclipse.xtend.typesystem.emf.emfregistrymetamodel"/> <fileencoding value="cp1252"/> <expand value="templates::template::main FOR model"/> <genpath value="${targetdir"/> </component>... </workflow> 4. Rodar o workflow 5. Observar que foi gerado o arquivo src-gen/codigogerado.java

10 Exemplo 6 Objetivo: Demonstrar como gerar código utilizando JET 1. Criar um novo JET Transformation Project 1.1. nome = webmedia.mc3.exemplo Deixar as outras opções como default 2. Configurar o projeto para ler modelos EMF 2.1. Abrir o arquivo plugin.xml no raiz do projeto 2.2. Clicar na aba Extensions 2.3. Expandir o elemento org.eclipse.jet.transform na árvore All Extensions 2.4. Clicar no elemento (transform) 2.5. No campo modelloader, preencher org.eclipse.jet.emf 3. Criar templates para gerar um HTML para o questionário arquivo templates/main.jet prefix="ws" id="org.eclipse.jet.workspacetags" %> <c:setvariable var="org.eclipse.jet.taglib.control.iteratesetscontext" select="true()"/> <ws:project name="webmedia.mc3.exemplo6.generated"> <ws:folder path="html-gen"> <ws:file path="questionario.html" template="templates/questionario.html.jet" /> </ws:folder> </ws:project> arquivo templates/questionario.html.jet <html> <head> <title><c:get /></title> </head> <body> <h1><c:get /></h1> <br> Descrição: <c:get /> <br> <br> O tempo estimado para este questionário é de <c:get /> minutos <hr> <br> <% int contadorpergunta = 1; %> <c:iterate var="pergunta"> <c:get /> <br> <c:iterate select="$pergunta/alternativas" var="resposta" delimiter=" "> <input type="radio" name="rbpergunta<%=contadorpergunta%>" value=""><c:get /> </c:iterate> <% contadorpergunta++; %> <br><br> </c:iterate> Possíveis conclusões:<br> <c:iterate var="pergunta"> <input type="radio" name="rbconclusao" value=""><c:get /> <br> </c:iterate> </body> </html> 4. Rodar a transformação 4.1. Clicar no menu Run -> Run Configurations...

11 4.2. Clicar com botão direito sobre JET Transformation e escolher New 4.3. No campo Transformation Input, escolher - webmedia.mc3.exemplo4/src/default.questionario 4.4. No campo Transformation ID, escolher - webmedia.mc3.exemplo Clicar em Apply e em seguida em Run 4.6. Observar que foi criado um novo projeto webmedia.mc3.exemplo6.generated, com o conteúdo do questionário sendo gerado no arquivo html-gen/questionario.html 5. Mostrar como combinar com a transformação 5.1. Copiar projeto webmedia.mc3.exemplo Novo nome = webmedia.mc3.exemplo6.transforma 5.2. Modificar o arquivo de workflow Modificar a propriedade model para apontar para o modelo deste projeto Incluir uma propriedade transformedmodel para apontar para o modelo transformado Comentar o componente questionario.executa Incluir um componente de escrita do modelo transformado <?xml version="1.0"?> <workflow> <property name="model" value="webmedia.mc3.exemplo6.transforma/src/default.questionario" /> <property name="transformedmodel" value="webmedia.mc3.exemplo6.transforma/src/transformed.questionario" /> <!-- set up EMF for standalone execution --> <bean class="org.eclipse.emf.mwe.utils.standalonesetup" > <platformuri value=".."/> <RegisterGeneratedEPackage value="questionario.questionariopackage"/> </bean> <!-- load model and store it in slot 'model' --> <component class="org.eclipse.emf.mwe.utils.reader"> <uri value="platform:/resource/${model" /> <modelslot value="model" /> </component> <component class="questionario.transforma" /> <!--<component class="questionario.executa" />--> <component class="org.eclipse.emf.mwe.utils.writer"> <modelslot value="model" /> <uri value="platform:/resource/${transformedmodel" /> </component> </workflow> 5.3. Rodar o workflow Será criado o arquivo transformed.questionario Clicar com botão direito sobre o arquivo criado e escolher Initialize questionario_diagram diagram file e verificar que o novo modelo inclui as transformações 5.4. Rodar o gerador JET novamente, mas com o modelo transformado Clicar em Run -> Run Configurations Clicar na configuração JET Transformation criada anteriormente Modificar o campo Transformation Input para: webmedia.mc3.exemplo6.transforma/src/transformed.questionario Clicar em Apply e Run Verificar que o novo arquivo HTML gerado agora inclui as transformações

12 Estudo de caso Objetivo: Demonstrar a aplicação dos conceitos do desenvolvimento orientado a modelos na Engenharia Web 1. Modelagem estrutural 1.1. Criar novo projeto Xtext Name = webmedia.mc3.estudodecaso.estrutura Language name = webmedia.mc3.estudodecaso.estrutura DSL-file extension = estrutura Create generator project = true 1.2. Manter a própria gramática de exemplo criada 1.3. Mandar gerar o plug-in para a linguagem Rodar o workflow GenerateEstrutura.mwe 1.4. Exportar como Deployable plug-ins and fragments os projetos: - webmedia.mc3.estudodecaso.estrutura - webmedia.mc3.estudodecaso.estrutura.ui 1.5. Sair do eclipse, copiar os arquivos exportados para a pasta do eclipse e reiniciar o ambiente 1.6. Testar o modelo, no arquivo src/model/mymodel.estrutura, localizado no projeto webmedia.mc3.estudodecaso.estrutura.generator type String type int entity Pessoa { property nome : String property idade : int property dependentes : Pessoa[] property enderecoresidencial : Endereco entity Endereco { property rua : String property numero : int 2. Modelagem da navegação 2.1. Criar novo projeto GMF Nome = webmedia.mc3.estudodecaso.navegacao Mandar mostrar o dashboard Mover a pasta model para dentro da pasta src 2.2. Criar um Domain Model (usando o dashboard), dentro da pasta model, chamado navegacao.ecore 2.3. Inicializar diagrama ecore para editar mais facilmente Clicar com botão direito sobre navegacao.ecore e escolher Initialize Ecore Diagram File... (Não utilizar Initialize ecore_diagram diagram file ) 2.4. Criar o metamodelo Se não estiver aparecendo, mandar mostrar a properties view Clicar em qualquer lugar do diagrama, e setar as propriedades: Name: navegacao Ns Prefix: navegacaonsprefix Ns URI: navegacaonsuri

13 Criar o seguinte metamodelo: 2.5. Mandar derivar o Domain Gen Model (usando o dashboard) Deixar todas as opções default Após a criação, o arquivo gerado será aberto Clicar com botão direito sobre o nó raiz Navegacao e escolher Generate All 2.6. Mandar derivar o Graphical Def Model (usando o dashboard) Escolher Navegacao como Diagram Element Na tela de definição gráfica, escolher a seguinte configuração Ajustar o arquivo gmfgraph gerado: Apagar o nó Rectangle AreaFigure Clicar com botão direito sobre Figure Descriptor AreaFigure e escolher -> New Child -> Rounded Rectangle Clicar sobre Rounded Rectangle para visualizar suas propriedades e digitar AreaFigure no campo Name Mudar o campo Line Width para Clicar com botão direito sobre o nó Rounded Rectangle AreaFigure e escolher -> New Child -> Flow Layout Clicar com botão direito sobre o nó Rounded Rectangle AreaFigure e escolher -> New Child -> Label Clicar sobre o recém-criado elemento Label e setar os seguintes campos: Name = AreaNomeFigure Text = <...> Clicar sobre o elemento Child Access getfigurenull e setar o campo Figure para Label AreaNomeFigure (O campo Accessor irá atualizar automaticamente) Clicar sobre o elemento Polyline Connection PaginaAreaFigure e mudar o campo Line Kind para LINE_DOT

14 Clicar com botão direito sobre o elemento Polyline Connection LinkFigure e escolher -> New Child -> Polyline Decoration Clicar sobre o elemento recém-criado Polyline Decoration e colocar no campo Name o valor SetaLink Clicar sobre o elemento Polyline Connection LinkFigure e colocar no campo Target Decoration o valor Polyline Decoration SetaLink Clicar com botão direito sobre o elemento Polyline Connection LinkFigure e escolher -> New Child -> Foreground Color Constant Color Clicar sobre o elemento recém-criado e escolher o valor blue 2.7. Mandar derivar o Tooling Def Model (usando o dashboard) Escolher Navegacao como Diagram Element Na tela de definição de ferramentas, escolher a seguinte configuração 2.8. Mandar combinar Graphical e Tooling Def Models no Mapping Model (usando o dashboard) Escolher Navegação como a classe do Canvas Mapping Deixar nas opções padrão a seleção de Palette e Canvas Na tela de mapeamento, escolher a seguinte configuração e clicar em Finish

15 Clicando sobre os elementos do mapping, verificar/modificar as propriedades para que estejam conforme a seguir: - Top Node Reference <areas:area/area> - Node Mapping <Area/Area> - Feature Label Mapping false (Area/Area) - Top Node Reference <paginas:pagina/pagina> - Node Mapping <Pagina/Pagina>

16 - Feature Label Mapping false (Pagina/Pagina) - Link Mapping <{Pagina.area:Area/PaginaArea> - Link Mapping <Link{/> (após alterar os campos, clique com botão direito e escolha Refresh. O nome deste nó irá mudar para: Link{Link.origem:Pagina->Link.destino:Pagina/Link ) Clicar com botão direito sobre este último nó e escolher New Child -> Feature Label Mapping Clicar sobre o elemento recém-criado e setar os seguintes campos: Features to display = Link.nome:Estring Diagram Label = Diagram Label LinkNome 2.9. Transformar o Mapping Model no Diagram Editor Gen Model (usando o dashboard) Aguardar, pois não é exibida nenhuma janela nesta ação Gerar o Diagram Editor Gen Model (usando o dashboard) Exportar os projetos como plug-in Clicar com botão direito sobre o projeto e escolher Export Exportar como Deployable plug-ins and fragments os projetos webmedia.mc3.estudodecaso.navegacao*.* Usar a opção de exportar para arquivos.jar

17 No campo Qualifier replacement, inserir noqualifier Copiar a pasta gerada dentro da pasta do eclipse e reiniciar o ambiente Para testar, clicar em qualquer pasta e escolher New -> Example -> Navegacao Diagram 3. Modelagem da apresentação 3.1. Criar novo projeto Xtext Name = webmedia.mc3.estudodecaso.apresentacao Language name = webmedia.mc3.estudodecaso.apresentacao DSL-file extension = apresentacao Create generator project = true 3.2. Criar a seguinte gramática grammar webmedia.mc3.estudodecaso.apresentacao with org.eclipse.xtext.common.terminals generate apresentacao "http://www.mc3.webmedia/estudodecaso/apresentacao" Apresentacao : (conteudo+=conteudo)* (paginas+=pagina)* ; Conteudo : 'conteudo' name=id '{' ('paragrafo' texto+=string)* '' ; Pagina : 'pagina' name=id '{' 'titulo' titulo=string 'ref_conteudo' (conteudopagina += [Conteudo])+ '' ; 3.3. Rodar o workflow GenerateApresentacao.mwe 3.4. Exportar como Deployable plug-ins and fragments os projetos - webmedia.mc3.estudodecaso.apresentacao - webmedia.mc3.estudodecaso.apresentacao.ui 3.5. Copiar a pasta gerada dentro do eclipse e reiniciar o ambiente 3.6. Testar, modificando o arquivo src/model/mymodel.apresentacao do projeto webmedia.mc3.estudodecaso.apresentacao.generator 4. Geração de código 4.1. Criar novo projeto Xpand Name = webmedia.mc3.estudodecaso.gerador Create a sample = true 4.2. Criar nova pasta model no pacote src

18 4.3. Criar arquivo model/meusite.estrutura type String type boolean type int type double entity Pessoa { property nome : String property String property receberinformacoes : boolean entity Noticia { property titulo : String property texto : String entity Produto { property nome : String property descricao : String property preco : double entity Pedido { property pessoa : Pessoa property produtos : Produto [] 4.4. Criar arquivo meusite.navegacao ( New -> Example... -> Navegacao diagram )

19 4.5. Criar arquivo meusite.apresentacao Criar conteúdo e páginas de acordo com o diagrama acima Manter os nomes das páginas Exemplo: conteudo faleconosco { paragrafo "Estamos abertos à críticas e sugestões" paragrafo "Entre em contato pelo paragrafo "Estaremos respondendo em até 24 horas" conteudo endereco { paragrafo "O site de compras tem sede em São Carlos - SP" paragrafo "Rua central, número 1234, Centro" paragrafo "CEP: " paragrafo "Telefone: (16) / Fax: (16) "... pagina principal { titulo "Página principal" ref_conteudo bemvindo endereco pagina ultimasnoticias { titulo "Últimas notícias" ref_conteudo noticias pagina faleconosco { titulo "Entre em contato" ref_conteudo faleconosco endereco Adicionar as dependências do projeto Abrir arquivo META-INF/MANIFEST.MF, e na aba Dependencies, adicionar os seguintes plug-ins como Required: - org.eclipse.emf.mwe.utils - webmedia.mc3.estudodecaso.apresentacao - webmedia.mc3.estudodecaso.estrutura - webmedia.mc3.estudodecaso.navegacao 4.7. Criar gerador da estrutura (beans)

20 Colocar o seguinte conteúdo nos arquivos: template/generatorextensions.ext (Xtend) import estrutura; Model model(type this) : econtainer; List[Entity] entities(model this) : elements.typeselect(entity); getter(property this) : "get"+name.tofirstupper(); setter(property this) : "set"+name.tofirstupper(); template/template.xpt (Xpand) «IMPORT apresentacao» «IMPORT estrutura» «IMPORT navegacao» «EXTENSION template::generatorextensions» «DEFINE main(apresentacao apresentacao, Navegacao navegacao) FOR Model» «EXPAND javaclass FOREACH entities()» «ENDDEFINE» «DEFINE javaclass FOR Entity-» «FILE "src-gen/beans/"+name+".java"-» package beans; public class «name» { «FOREACH properties AS p-» «IF!p.many-» private «p.type.name» «p.name»; public void «p.setter()»(«p.type.name» «p.name») { this.«p.name» = «p.name»; public «p.type.name» «p.getter()»() { return «p.name»; «ELSE-» private java.util.collection<«p.type.name»> «p.name»; public void «p.setter()»(java.util.collection<«p.type.name»> «p.name») { this.«p.name» = «p.name»; public java.util.collection<«p.type.name»> «p.getter()»() { return «p.name»; «ENDIF-» «ENDFOREACH-» «ENDFILE» «ENDDEFINE»

21 Para testar, modificar o arquivo de workflow (generator.mwe) para: <?xml version="1.0"?> <workflow> <property name="modeloestrutura" value="webmedia.mc3.estudodecaso.gerador/src/model/meusite.estrutura" /> <property name="modelonavegacao" value="webmedia.mc3.estudodecaso.gerador/src/model/meusite.navegacao" /> <property name="modeloapresentacao" value="webmedia.mc3.estudodecaso.gerador/src/model/meusite.apresentacao" /> <property name="targetdir" value="meusite"/> <!-- Configura os metamodelos EMF --> <bean class="org.eclipse.emf.mwe.utils.standalonesetup" > <platformuri value=".."/> <RegisterGeneratedEPackage value="navegacao.navegacaopackage"/> </bean> <!-- Ler modelo estrutural (Xtext) --> <component class="org.eclipse.xtext.mwereader" uri="platform:/resource/${modeloestrutura"> <!-- this class will be generated by the xtext generator --> <register class="webmedia.mc3.estudodecaso.estruturastandalonesetup"/> <outputslot value="modeloestruturalido" /> </component> <!-- Ler modelo de navegacao (GMF) --> <component class="org.eclipse.emf.mwe.utils.reader"> <uri value="platform:/resource/${modelonavegacao" /> <modelslot value="modelonavegacaolido" /> </component> <!-- Ler modelo apresentacao (Xtext) --> <component class="org.eclipse.xtext.mwereader" uri="platform:/resource/${modeloapresentacao"> <!-- this class will be generated by the xtext generator --> <register class="webmedia.mc3.estudodecaso.apresentacaostandalonesetup"/> <outputslot value="modeloapresentacaolido" /> </component> <!-- Gerar codigo --> <component class="org.eclipse.xpand2.generator"> <metamodel class="org.eclipse.xtend.typesystem.emf.emfregistrymetamodel"/> <fileencoding value="cp1252"/> <expand value="template::template::main(modeloapresentacaolido, modelonavegacaolido) FOR modeloestruturalido"/> <genpath value="${targetdir"/> </component> </workflow> Rodar o workflow e observar que gerou código para as entidades 4.8. Criar gerador das páginas Adicionar a seguinte linha ao arquivo Template.xpt... «DEFINE main(apresentacao apresentacao, Navegacao navegacao) FOR Model» «EXPAND javaclass FOREACH entities()» «EXPAND template::templatehtml::htmlpage(navegacao,apresentacao) FOREACH apresentacao.paginas» «ENDDEFINE»...

22 Criar arquivo de template das páginas, clicando sobre a pasta src/template e escolhendo New -> Other... -> Xpand Template template/templatehtml.xpt «IMPORT apresentacao» «IMPORT estrutura» «IMPORT navegacao» «EXTENSION template::generatorextensions» «DEFINE htmlpage(navegacao navegacao, Apresentacao apresentacao) FOR apresentacao::pagina-» «FILE "html-gen/paginas/"+name+".html"-» <html><head> <title>«titulo»</title> </head> <body> <h1>«titulo»</h1> <br> Você está em: «area(name,navegacao)» > «titulo» <hr> <table><tr> <td bgcolor="#cccccc"> «EXPAND menu(name, apresentacao) FOR navegacao-» </td> <td> <br> «FOREACH conteudopagina AS conteudo-» «FOREACH conteudo.texto AS paragrafo-» <p>«paragrafo»</p> «ENDFOREACH-» «ENDFOREACH-» <br> </td></tr></table> <hr> Links: «EXPAND links(name) FOR navegacao-» </body> </html> «ENDFILE» «ENDDEFINE» «DEFINE menu(string nome, Apresentacao apresentacao) FOR Navegacao-» «FOREACH areas AS area-» «area.nome»<br> «FOREACH paginas.select(e e.area==area) AS pagina-» «IF pagina.nome!=nome»<a href="«pagina.nome».html">«endif-» «apresentacao.paginas.selectfirst(e e.name==pagina.nome).titulo» «IF pagina.nome!=nome»</a>«endif-» <br/> «ENDFOREACH-» «ENDFOREACH-» «ENDDEFINE» «DEFINE links(string nome) FOR Navegacao-» «FOREACH links.select(e e.origem.nome==nome) AS link SEPARATOR " " -» <a href="«link.destino.nome».html">«link.nome»</a> «ENDFOREACH» «ENDDEFINE»

1. Fazer aplicação exemplo

1. Fazer aplicação exemplo 1. Fazer aplicação exemplo 1.1. Criar novo projeto Web (EstudoDeCaso.Exemplo) 1.2. index.jsp (com os links individuais para cadastros) 1.3. cadastrarpessoa.jsp (formulário simples) 1.4. servlet CadastrarPessoa

Leia mais

Tutorial GMF (Graphical Modeling Framework)

Tutorial GMF (Graphical Modeling Framework) Tutorial GMF (Graphical Modeling Framework) Sobre o GMF: O GMF (Graphical Modeling Framework) é um framework para desenvolvimento de editores gráficos para modelos de domínio. Ele surgiu de uma união de

Leia mais

Exemplo 1 Objetivo: Demonstrar como fazer um interpretador simples

Exemplo 1 Objetivo: Demonstrar como fazer um interpretador simples Exemplo 1 Objetivo: Demonstrar como fazer um interpretador simples 1. Criar novo projeto Java 2. Criar arquivo conta.math 3. Criar classe InterpretaMath.java 5. Criar um LineNumberReader/FileReader para

Leia mais

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

Leia mais

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível.

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível. Atividade 4 2013 SSIS Atenção! A atividade 4 será apresentada para toda a turma. Cada aluno terá 10 minutos para apresentação. O dia da apresentação será posteriormente marcado. Montando o cenário Para

Leia mais

Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência

Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência Tutorial JPA em ambiente Eclipse Antes de iniciar execute o script do banco de dados no SQLYOG ou outra ferramenta de sua preferência 1-Selecione a perspectiva Java JPA: window, open perspective, other,

Leia mais

Configurar o Furbot no Eclipse

Configurar o Furbot no Eclipse Configurar o Furbot no Eclipse Primeiramente, precisamos abrir o Eclipse. Logo no início, deverá aparecer uma tela assim: Nela, você irá selecionar o local do seu workspace. Workspace é o local onde ficarão

Leia mais

Desenvolvimento Android. http://www.larback.com.br

Desenvolvimento Android. http://www.larback.com.br Desenvolvimento Android http://www.larback.com.br Introdução ao Android O Android é a resposta da Google ao mercado crescente de dispositivos móveis. É uma nova plataforma de desenvolvimento baseado no

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler Desenvolvimento para Android Prá9ca 2 Prof. Markus Endler Criando o primeiro projeto Android Com o ambiente de desenvolvimento preparado, vá em File - > New - > Project... Na janela que abrir, selecione

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Tutorial JUDE ( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Ferramenta CASE UML Índice Introdução... 2 Download e Instalação... 2 Apresentação da Ferramenta... 2 Salvando o Projeto...

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

BC0501 Linguagens de Programação

BC0501 Linguagens de Programação BC0501 Linguagens de Programação Aula Prática: 03 Assunto: Comandos de Seleção 1. Introdução Um comando de seleção define uma condição em um programa, que permite que grupos de comandos sejam executados

Leia mais

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods: Criação de Applets Após ter sido criado o projeto, ao contrário dos exemplos anteriores onde criávamos uma aplicação na guia General da janela Object Gallery, agora iremos criar uma applet que está contida

Leia mais

Paradigmas da Programação Netbeans 6.7.1 UML

Paradigmas da Programação Netbeans 6.7.1 UML Paradigmas da Programação Netbeans 6.7.1 UML Nelson Freire (ISEP DEI-PPROG 2010/11) 1/31 UML Tópicos Referências Instalação Netbeans 6.7.1 Instalação Plugin UML Criação Diagrama de Classes: Novo Projecto

Leia mais

Tutorial Eclipse (IDE)

Tutorial Eclipse (IDE) www.dejavuxteam.wordpress.com Tutorial Eclipse (IDE) (Start) Sumário Introdução O que é o Eclipse? Característica e Ferramentas Download Preparando Ambiente de Trabalho Iniciando o Eclipse Criando um Projeto

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler Desenvolvimento para Android Prá3ca 3 Prof. Markus Endler Exercício 3.1 Solicitando permissão para abrir uma página Web ü Criaremos uma Ac.vity com um EditText (para entrada de uma URL), um Bu?on e uma

Leia mais

1. StarUML - UML/MDA Plataform

1. StarUML - UML/MDA Plataform Sumário 1. StarUML - UML/MDA Plataform... 1 2. Criando Perfis no StarUML... 2 3. Criando o perfil GeoProfile... 5 4. Aplicando o Perfil GeoProfile... 12 1. StarUML - UML/MDA Plataform Star UML (STAR UML,

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Tutorial de Computação Programação Gráfica em Python para MEC1100 v2010.11

Tutorial de Computação Programação Gráfica em Python para MEC1100 v2010.11 Tutorial de Computação Programação Gráfica em Python para MEC1100 v2010.11 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212 Londrina PR Brasil

Leia mais

Java 2 Standard Edition. Configuraçã. ção o do ambiente. JEdit + Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)

Java 2 Standard Edition. Configuraçã. ção o do ambiente. JEdit + Ant. argonavis.com.br. Helder da Rocha (helder@acm.org) Java 2 Standard Edition Configuraçã ção o do ambiente JEdit + Ant Helder da Rocha (helder@acm.org) argonavis.com.br 1 Java "IDE" configurável Este módulo mostra como montar um ótimo ambiente de desenolvimento

Leia mais

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

Tutorial EPF Básico. 1)Vá a File-> New->Method Library. Escolha uma pasta para criar a Method Library.

Tutorial EPF Básico. 1)Vá a File-> New->Method Library. Escolha uma pasta para criar a Method Library. Tutorial EPF Básico Pasteur Ottoni de Miranda Junior-DCC PUC MG Postado em www.pasteurjr.blogspot.com 1)Vá a File-> New->Method Library. Escolha uma pasta para criar a Method Library. 2)Vá a File-> New->Method

Leia mais

ANDROID APPLICATION PROJECT

ANDROID APPLICATION PROJECT Criando um programa Abrindo o programa Eclipse, clique na opção [FILE], depois em [NEW], selecione a opção [PROJECT], uma janela de opção do tipo de projeto irá se abrir, escolha [ANDROID] logo depois

Leia mais

SQL Server 2008 Integration Services

SQL Server 2008 Integration Services SQL Server 2008 Integration Services Utilizar a ferramenta certa para cada tipo de trabalho é uma decisão importante para projetos dentro de qualquer empresa. Dentro do Microsoft SQL Server 2008 o problema

Leia mais

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments Criação de Servlets 1. Crie um novo projeto através do Menu File New Project. 2. Acesse o Menu File New. 3. Na janela Object Gallery que surgirá, selecione a guia Web. 4. Escolha o ícone que corresponde

Leia mais

Guião de Introdução ao Eclipse IDE Índice

Guião de Introdução ao Eclipse IDE Índice Índice 1. Introdução... 2 1.1. O que é um ambiente de desenvolvimento (IDE)?... 2 1.2. Visão geral sobre o Eclipse IDE... 2 2. Iniciar o Eclipse... 3 2.1. Instalação... 3 2.2. Utilizar o Eclipse... 3 3.

Leia mais

PROGRAMANDO ANDROID NA IDE ECLIPSE GABRIEL NUNES, JEAN CARVALHO TURMA TI7

PROGRAMANDO ANDROID NA IDE ECLIPSE GABRIEL NUNES, JEAN CARVALHO TURMA TI7 Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação: Habilitação Técnica de Nível Médio Técnico em Informática Programação Android na IDE Eclipse PROGRAMANDO ANDROID

Leia mais

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais

Manual da Ferramenta Metadata Editor

Manual da Ferramenta Metadata Editor 4 de março de 2010 Sumário 1 Introdução 3 2 Objetivos 3 3 Visão Geral 3 3.1 Instalação............................. 3 3.2 Legenda.............................. 4 3.3 Configuração Inicial........................

Leia mais

Passo a Passo. WebSphere Message Broker. Fluxo como WebService

Passo a Passo. WebSphere Message Broker. Fluxo como WebService Passo a Passo WebSphere Message Broker Fluxo como WebService Alexandre José Batista ajbatist@ibest.com.br Criado em: 07/11/08 Página 1 de 38 Índice 1. OBJETIVOS DO DOCUMENTO... 4 2. CRIANDO UM FLUXO NO

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 01: Visão geral do android, instalação e configuração do ambiente de desenvolvimento, estrutura básica de uma aplicação para Android Objetivos Configurar o ambiente de trabalho

Leia mais

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g

Introdução ao BPEL utilizando o Oracle SOA Suíte 10g Introdução ao BPEL utilizando o Oracle SOA Suíte 10g 1. Introdução Neste artigo serão apresentados alguns conceitos inerentes a SOA Service Oriented Architecture e um exemplo prático de construção de processo

Leia mais

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos. import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 03 Introdução ao ambiente de desenvolvimento: Eclipse e Android SDK Dalton Martins dmartins@gmail.com São

Leia mais

Nome N Série: Ferramentas

Nome N Série: Ferramentas Nome N Série: Ferramentas Competências: Identificar e utilizar técnicas de modelagem de dados; Habilidades: Utilizar ferramentas de apoio ao desenvolvimento de software; Bases Tecnológicas: Metodologias

Leia mais

Tutorial Jogo da Velha WEB

Tutorial Jogo da Velha WEB Tutorial Jogo da Velha WEB Criação do Projeto 1- Inicie o Eclipse 2- Crie um novo projeto Web dinâmico. 3- Na tela seguinte, digite o nome do projeto e caso no campo Target Runtime não estiver aparecendo

Leia mais

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características:

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características: Cerne Tecnologia www.cerne-tec.com.br Conhecendo o NSBASIC para Palm Vitor Amadeu Vitor@cerne-tec.com.br 1. Introdução Iremos neste artigo abordar a programação em BASIC para o Palm OS. Para isso, precisaremos

Leia mais

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide Para criar uma aplicação J2EE, utilizando Eclipse e jboss-ide, é necessário ter instalado em seu computador o JDK 1.5 (versão atual). Abaixo seguem

Leia mais

Simão Pedro P. Marinho

Simão Pedro P. Marinho Simão Pedro P. Marinho Para uso exclusivo por alunos da PUC Minas Numa web page podemos encontrar, basicamente, 3 (três) tipos de links, além do que permite abrir o software de e-mail para enviar uma mensagem.

Leia mais

Criar o diagrama entidade associação do exemplo do hotel no Oracle Designer

Criar o diagrama entidade associação do exemplo do hotel no Oracle Designer Criar o diagrama entidade associação do exemplo do hotel no Oracle Designer 1 escolher o tipo de dados de cada atributo 2 escolher as chaves Gerar as tabelas Correr o "Database Design Transformer" 3 Seleccionar

Leia mais

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008

INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008 INSTALANDO E CONFIGURANDO O ACTIVE DIRECTORY NO WINDOWS SERVER 2008 Objetivo Esse artigo tem como objetivo demonstrar como instalar e configurar o Active Directory no Windows Server 2008. Será também apresentado

Leia mais

Conhecendo o Visual FoxPro 8.0 Parte 3

Conhecendo o Visual FoxPro 8.0 Parte 3 AULA Conhecendo o Visual FoxPro 8.0 Parte 3 Continuando nossa saga pelas ferramentas do Visual FoxPro 8.0, hoje vamos conhecer mais algumas. A Ferramenta Class Designer A Class Designer é a ferramenta

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: PROGRAMAÇÃO ORIENTADA A OBJETOS PROFESSOR: REINALDO GOMES ASSUNTO: REVISÃO DA INTRODUÇÃO A ORIENTAÇÃO

Leia mais

Meta Programming. Nelson Ferraz nferraz@gmail.com

Meta Programming. Nelson Ferraz nferraz@gmail.com Meta Programming Nelson Ferraz nferraz@gmail.com Resumo Meta Programming Code Generation AppML 23/11/07 Nelson Ferraz 2 Meta Programming Programas que manipulam programas Geração de

Leia mais

LINGUAGEM ORIENTADA A OBJETOS

LINGUAGEM ORIENTADA A OBJETOS LINGUAGEM ORIENTADA A OBJETOS TI MÓDULO II O ECLIPSE O eclipse é uma IDE Open Source (código fonte aberto) que serve para o desenvolvimento em muitas linguagens: PHP Java Python HTML C/C++ A IDE Eclipse

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral Índice 03 Capítulo 1: Visão Geral 04 Capítulo 2: Conta de Usuário 04 Criação 08 Edição 09 Grupo de Usuários 10 Informações da Conta 12 Capítulo 3: Download do Backup Online Embratel 16 Capítulo 4: Cópia

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand O Eclipse O Eclipse (www.eclipse.org) e uma IDE (integrated development environment). Diferente de uma

Leia mais

Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web

Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web O objetivo deste exercício é fornecer uma introdução a criação de uma aplicação composta de modo a ilustrar

Leia mais

Criação de Applets com o JBuilder Professor Sérgio Furgeri

Criação de Applets com o JBuilder Professor Sérgio Furgeri OBJETIVOS DA AULA: Apresentar o processo de criação em uma interface gráfica para a Internet; Fornecer subsídios para que o aluno possa compreender onde aplicar Applets; Demonstrar a criação de uma Applet

Leia mais

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5. Ele considera que você já tem o Joomla! instalado no seu computador. Caso você queira utilizá lo em um servidor na web,

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

OMT-G Design. Instalação por pacotes

OMT-G Design. Instalação por pacotes OMT-G Design A plataforma Eclipse OMT-G Design não é um software independente, é um plug-in que se utiliza dos mecanismos de extensão do Eclipse que por sua vez é um ambiente de desenvolvimento de software.

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

Microsoft Visual Studio 2010 C# Volume II

Microsoft Visual Studio 2010 C# Volume II Microsoft Visual Studio 2010 C# Volume II Apostila desenvolvida pelos Professores Ricardo Santos de Jesus e Rovilson de Freitas, para as Disciplinas de Desenvolvimento de Software I e II, nas Etecs de

Leia mais

Projeto de Agenda Telefônica. Cleyton Tsukuda Kano (kanoct@br.ibm.com)

Projeto de Agenda Telefônica. Cleyton Tsukuda Kano (kanoct@br.ibm.com) Projeto de Agenda Telefônica Cleyton Tsukuda Kano (kanoct@br.ibm.com) Objetivo Conhecer o elemento de designs XPages, componente da ferramenta Lotus Domino Designer, através da criação de uma aplicação

Leia mais

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo. 7. Carregando e mostrando imagens locais Esta aula complementa os estudos de programação de interfaces gráficas em Java mostrando como podemos carregar imagens de arquivos locais ou da Internet para uso

Leia mais

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS FUNDAMENTOS DE Visão geral sobre o Active Directory Um diretório é uma estrutura hierárquica que armazena informações sobre objetos na rede. Um serviço de diretório,

Leia mais

BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO

BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO Criação de Conta de Usuário...03 Edição da Conta de Usuário...10 Download do Backup Online Embratel...10 Descrição dos Conjuntos de Cópia de Segurança...19

Leia mais

Programação online em Java

Programação online em Java Universidade Federal do ABC Disciplina: Processamento da Informação Assunto: Programação online em Java Programação online em Java Conteúdo Conteúdo...1 Introdução... 1 1.1.Programas necessários... 1 1.2.Visão

Leia mais

OWL-S Composer. MATE15 - Tópicos Especiais em Banco de Dados III. 17 de Julho de 2013. Marco Antonio Almeida 1 e Daniela Barreiro Claro 2

OWL-S Composer. MATE15 - Tópicos Especiais em Banco de Dados III. 17 de Julho de 2013. Marco Antonio Almeida 1 e Daniela Barreiro Claro 2 MATE15 - Tópicos Especiais em Banco de Dados III OWL-S Composer 17 de Julho de 2013 Marco Antonio Almeida 1 e Daniela Barreiro Claro 2 1 marco062@dcc.ufba.br 2 dclaro@ufba.br MOTIVAÇÃO E HISTÓRICO MOTIVAÇÃO

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

ArcMAP (parte 2) Rodar o ArcMap teclar: Iniciar > Todos os programas > ArcGIS > ArcMap. Sobre a janela selecionar o item An existing map:

ArcMAP (parte 2) Rodar o ArcMap teclar: Iniciar > Todos os programas > ArcGIS > ArcMap. Sobre a janela selecionar o item An existing map: ArcMAP (parte 2) Nesta parte do tutorial, você irá mapear cada tipo de uso da terra dentro do noise contour. Você adicionará dados ao seu mapa, desenhará feições baseadas em atributos, selecionará feições

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

CAPITULO 5 COMANDO DE FLUXO IF

CAPITULO 5 COMANDO DE FLUXO IF CAPITULO 5 COMANDO DE FLUXO IF Sempre que for necessária a tomada de decisão dentro de um programa, você terá que utilizar um comando condicional, pois é por meio dele que o PHP decidirá que lógica deverá

Leia mais

Passos para a configuração do ambiente de desenvolvimento:

Passos para a configuração do ambiente de desenvolvimento: Passos para a configuração do ambiente de desenvolvimento: 0 - (Opcional) Criar uma pasta onde vai ser o seu Workspace. Ou seja, onde os códigos de todos os projetos do Eclipse serão salvos: 1 - Instalar

Leia mais

Tutorial: Serviços web e suas composições

Tutorial: Serviços web e suas composições Tutorial: Serviços web e suas composições Objetivo: Este tutorial tem como objetivo apresentar o desenvolvimento de serviços web através do framework Axis2. Além disso, realizar uma composição através

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

Criar uma aplicação JPA2 com EclipseLink e H2

Criar uma aplicação JPA2 com EclipseLink e H2 Criar uma aplicação JPA2 com EclipseLink e H2 1) Criar uma aplicação Java no NetBeans. File > New Project > Java, Java Application > Project name: JPA2 Finish. 2) Acrescentar ao Projeto NetBeans a biblioteca

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

Instrução para Instalação de Certificados Digitais de Servidor Web

Instrução para Instalação de Certificados Digitais de Servidor Web Instrução para Instalação de Certificados Digitais de Servidor Web Certificado Digital do tipo A1 Sistemas Operacionais: Windows 2000 Server Windows 2003 Server Dezembro/2010 Proibida a reprodução total

Leia mais

Manual das funcionalidades Webmail AASP

Manual das funcionalidades Webmail AASP Manual das funcionalidades Webmail AASP 1. Configurações iniciais 2. Regras 3. Histórico da conta 4. Autorresposta 5. Dados de acesso (alterando senha de acesso) 6. Identidade (assinatura) 7. Redirecionamento

Leia mais

TUTORIAL DE INTRODUÇÃO AO CEWOLF

TUTORIAL DE INTRODUÇÃO AO CEWOLF 1 TUTORIAL DE INTRODUÇÃO AO CEWOLF CRIANDO GRÁFICOS COM JSP, CEWOLF/JFREECHART E MYSQL 1. Introdução O Cewolf (http://cewolf.sourceforge.net/) é uma biblioteca que facilita a criação de gráficos dinâmicos

Leia mais

(Nota Fiscal Eletrônica no Power Systems AS/400) Projeto Nacional Versão 1.0

(Nota Fiscal Eletrônica no Power Systems AS/400) Projeto Nacional Versão 1.0 Manual do usuário (Nota Fiscal Eletrônica no Power Systems AS/400) Projeto Nacional Versão 1.0 29-03-2011 1 de 32 Í ndice 1. Descrição Geral do Sistema 1.1 Descrição 1.2 Desenho do Processo 2. Aplicação

Leia mais

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Programação para Android. Aula 05: Estilos e temas; galeria de imagens Programação para Android Aula 05: Estilos e temas; galeria de imagens Objetivos Aplicar estilos e temas Criar uma galeria de imagens com o widget Gallery Parte 01: Estilos e temas Interface de Usuários

Leia mais

TUTORIAL INCORPORANDO A BIBLIOTECA DO ARDUINO AO ECLIPSE

TUTORIAL INCORPORANDO A BIBLIOTECA DO ARDUINO AO ECLIPSE TUTORIAL INCORPORANDO A BIBLIOTECA DO ARDUINO AO ECLIPSE Jefferson Z. Moro jefferson.moro@gmail.com Vinicius Franchini viniciusnf@gmail.com Campinas, maio de 2011 1 Motivação O Arduino veio para simplificar

Leia mais

Dominando Action Script 3

Dominando Action Script 3 Dominando Action Script 3 Segunda Edição (2014) Daniel Schmitz Esse livro está à venda em http://leanpub.com/dominandoactionscript3 Essa versão foi publicada em 2014-05-02 This is a Leanpub book. Leanpub

Leia mais

EMF. Eclipse Modeling Framework. José G. de Souza Júnior. direção: Dr. Denivaldo Lopes

EMF. Eclipse Modeling Framework. José G. de Souza Júnior. direção: Dr. Denivaldo Lopes Engineering for a better life EMF Eclipse Modeling Framework José G. de Souza Júnior direção: Dr. Denivaldo Lopes LESERC (Laboratório de Engenharia de Software e Rede de Computadores) Web Site: http://www.leserc.dee.ufma.br/

Leia mais

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI Exercício 1 Neste exercício trabalharemos com alguns web controls básicos e praticaremos os tipos de dados do C#. Vamos criar

Leia mais

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android Instalação e Configuração do Ambiente de Desenvolvimento Instalação

Leia mais

Introdução à Tecnologia Web

Introdução à Tecnologia Web Introdução à Tecnologia Web JavaScript Sintaxe da Linguagem: Delimitadores e etc Profª MSc. Elizabete Munzlinger JavaScript Sintaxe da Linguagem Índice 1 SINTAXE DA LINGUAGEM... 2 1.1 Delimitadores de

Leia mais

Manual de Instruções para a Criação de Ficheiros CSR. Microsoft IIS 5/6

Manual de Instruções para a Criação de Ficheiros CSR. Microsoft IIS 5/6 Manual de Instruções para a Criação de Ficheiros CSR Página 1 de 8 CONTROLO DOCUMENTAL REGISTO DE MODIFICAÇÕES Versão Data Motivo da Modificação PREPARADO REVISTO APROVADO ACEITE DUS/RS DISTRIBUIÇÃO DO

Leia mais

5 Derivando Aplicações Baseadas em Spring e OSGi

5 Derivando Aplicações Baseadas em Spring e OSGi 69 5 Derivando Aplicações Baseadas em Spring e OSGi O capítulo 3 apresentou como um conjunto de artefatos (classes, interfaces, aspectos e arquivos extras) de uma arquitetura de LPS pode ser modelado na

Leia mais

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio...

Manual de Envio de Torpedos SMS Comtele. Introdução... 02. 1.Cadastrar um Grupo... 02. 2.Inserir ou Importar Contatos... 06. 2.1 Ordem de envio... Manual de Envio de Torpedos SMS Comtele Índice Introdução... 02 1.Cadastrar um Grupo... 02 2.Inserir ou Importar Contatos... 06 2.1 Ordem de envio... 08 3.Criar e Enviar uma Mensagens... 12 4. Salvando

Leia mais

ROTEIRO ILUSTRADO PARA SISTEMA COMPUTACIONAL INSANE

ROTEIRO ILUSTRADO PARA SISTEMA COMPUTACIONAL INSANE UNIVERSIDADE FEDERAL DE MINAS GERAIS PROPEEs - Programa de Pós-Graduação em Engenharia de Estruturas INSANE - INteractive Structural ANalysis Environment ROTEIRO ILUSTRADO PARA INSTALAÇÃO DO SISTEMA COMPUTACIONAL

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados

Leia mais

BlackBerry Messenger SDK

BlackBerry Messenger SDK BlackBerry Messenger SDK Versão: 1.2 Getting Started Guide Publicado: 2011-10-11 SWD-1391821-1011103456-012 Conteúdo 1 Requisitos do sistema... 2 2 Dependências de versão do BlackBerry Messenger... 3 3

Leia mais

Escola de Engenharia de São Carlos EESC Universidade de São Paulo USP Departamento de Engenharia de Materiais, Aeronáutica e Automobilística

Escola de Engenharia de São Carlos EESC Universidade de São Paulo USP Departamento de Engenharia de Materiais, Aeronáutica e Automobilística Escola de Engenharia de São Carlos EESC Universidade de São Paulo USP Departamento de Engenharia de Materiais, Aeronáutica e Automobilística Tutorial 3a: Revestimento com reforço. Prof. Dr. Volnei Tita

Leia mais