A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1o Seminário do Projeto VAS – Verificação de Arquiteturas de Software VAS - Verificação de Arquiteturas de Software CBDT – CBabel Development Tools Integração.

Apresentações semelhantes


Apresentação em tema: "1o Seminário do Projeto VAS – Verificação de Arquiteturas de Software VAS - Verificação de Arquiteturas de Software CBDT – CBabel Development Tools Integração."— Transcrição da apresentação:

1 1o Seminário do Projeto VAS – Verificação de Arquiteturas de Software VAS - Verificação de Arquiteturas de Software CBDT – CBabel Development Tools Integração do compilador CBabel e do Repository Explorer ao Eclipse Julio Heitor Silva Nóbrega Bolsista ITI - UERJ 19 de Março de 2004 UFF/Niterói

2 1o Seminário do Projeto VAS – Verificação de Arquiteturas de Software Integração do compilador Cbabel para a plataforma Eclipse zObjetivo zVisão geral de um plugin no Eclipse zMigração (swing SWT + JFace + plugin) zFerramentas e Técnicas usadas

3 Objetivo Fase 1 zMapear a ferramenta Repository Explorer de CBabel para a plataforma Eclipse ySwing -> SWT + Jface + plugin yImplementar um editor highlight syntax para CBabel yIntegrar o compilador CBabel Fase 2 zCom o resultado da fase 1, propor a migração do repositório de CBabel para EMF (Eclipse Modeling Framework) yModelo de CBabel -> EMF yArquiteturas descritas -> XML / XMI Fase 3 zPreparar a tradução dos modelos de CBabel para Maude e vice-versa zPreparar a geração de código Java a partir do modelo de CBabel em EMF

4 Visão geral de um plugin no Eclipse <plugin id= org.eclipse.Cbabel name= Cbabel Example class= org.eclipse.Cbabel.CBabelPlugin> <requires <library name= Cbabel.jar Platform Runtime WorkBench JFace SWT Outras Ferramentas Compilador CBabel Ferramenta XPTO Plataforma Eclipse Workspace Projeto Eclipse

5 Migração (swing SWT + JFace + plugin) zProcesso de transferência do Repository Explorer CBabel/Swing para Eclipse. 1.Nova interface gráfica 2.O arquivo de Manifest 3.Plugins contribuídos 1.Conteúdo 2.Classes herdadas e métodos sobrescritos de outros plugins (contribuição) 3.Declaração dos plugins no arquivo XML 4.Adaptações do código original

6 Nova interface gráfica zA interface gráfica do Repository Explorer foi modificada para se adaptar ao ambiente do Eclipse. As modificações principais foram: yBarra de tools substituída por um menu na View; yAs tables foram colocadas uma ao lado da outra, diferente da interface original; yA maioria dos ícones foram removidos já que a barra de tools foi eliminada.

7 Interface original do Repository Explorer

8 Interface preliminar do Repository Explorer

9 O arquivo de Manifest do novo plugin zParte do arquivo de Manifest (em XML) yUma view Ponto de extensão <extension point="org.eclipse.ui.views"> <category name="Compiladores" id="org.eclipse.CBabel"> <view name="CBabel Repository Explorer" icon="icons/tree20.gif" category="org.eclipse.CBabel" class="org.eclipse.Arvores.TDCB" id="org.eclipse.Arvores.TDCB">

10 Plugins contribuídos zPlugins utilizados zClasses utilizadas de cada plugin zIndicação no Manifest z Org.eclipse.ui; - ViewPart Class z Org.eclipse.jface - Actions Package - IMenuManager Class - Action Class - Viewers Package - TableViewer Class z Org.eclipse.swt - Widgets Package - Custon Package - Layout Package

11 Declaração dos Plugins no arquivo de Manifest org.eclipse.core.swt org.eclipse.resources org.eclipse.jface org.eclipse.ui </requires

12 A Classe TDCB zArquivo principal da view org.eclipse.CBabel.TDCB public class TDCB extends ViewPart { private CBabelAPI cbapi;..// declarações de variáveis. public void createPartControl(Composite parent) {. createActions(); createMenus(); createInterface(parent);. }

13 Os Métodos createActions(), createMenu() e createInterface() protected void createMenus() { IMenuManager rootMenuManager = getViewSite().getActionBars().getMenuManager(); rootMenuManager.setRemoveAllWhenShown(true); rootMenuManager.addMenuListener(new IMenuListener() { public void menuAboutToShow(IMenuManager mgr) { fillMenu(mgr); } }); fillMenu(rootMenuManager); } protected void fillMenu(IMenuManager rootMenuManager) { IMenuManager filterSubmenu = new MenuManager("File"); rootMenuManager.add(filterSubmenu); filterSubmenu.add(openRepository); filterSubmenu.add(save); filterSubmenu.add(close); }

14 Os Métodos createActions(), createMenu() e createInterface() protected void createActions() { openRepository = new Action("Open Repository") { public void run() { String arquivo; FileDialog dialog = new FileDialog (shell,SWT.OPEN); dialog.setFilterNames (new String [] {"CBO Files", "All Files (*.*)"}); dialog.setFilterExtensions (new String [] {"*.cbo", "*.*"}); dialog.setFilterPath ("c:\\"); //Windows path dialog.setFileName ("pc5.cbo"); arquivo=dialog.open(); if(arquivo.length() != 0){ MessageDialog.openInformation(shell,"arquivo",arquivo); } }; openRepository.setChecked(false);

15 Os Métodos createActions(), createMenu() e createInterface() save = new Action("Save") { public void run() { String arquivo; FileDialog dialog = new FileDialog (shell,SWT.SAVE); dialog.setFilterNames (new String [] {"CBO Files", "All Files (*.*)"}); dialog.setFilterExtensions (new String [] {"*.cbo", "*.*"}); dialog.setFilterPath ("c:\\"); //Windows path dialog.setFileName ("pc5.cbo"); arquivo=dialog.open(); if(arquivo.length() != 0){ try{ FileOutputStream fos = new FileOutputStream(arquivo); PrintWriter pw = new PrintWriter(fos,true); pw.close(); // se nao colocar isto - nao grava... fos.close(); }//end try catch(Exception ex) { System.out.println(ex); } }; save.setChecked(false);

16 Os Métodos createActions(), createMenu() e createInterface() close=new Action("Close"){ public void run(){ } }; close.setChecked(false); }

17 Conclusão zPesquisa em interface gráfica, tanto em Swing como em Swt, bem como o aprendizado na plataforma Eclipse de desenvolvimento. zNoções de descrição de arquitetura (mais especificamente a linguagem CBabel) para realizar o trabalho. zA implementação da interface gráfica em SWT no Eclipse ainda esta em andamento. yA maior dificuldade está em substituir a arvore de repositório de Swing para SWT, já que a forma de construção da mesma no Eclipse é incompatível. zApós a transferência do Repository Explorer, o próximo passo será colocar o próprio compilador CBabel no Eclipse com um editor de texto highlight syntax.

18 Referências zwww-106.ibm.com/developerworks/opensource/library/os-ecgui1/www-106.ibm.com/developerworks/opensource/library/os-ecgui1/ zwww.swt-designer.com/www.swt-designer.com/ zwww.eclipse.org/TreeViewerArticle.htm+MovingBox+plugin&hl=pt&ie=UTF-8


Carregar ppt "1o Seminário do Projeto VAS – Verificação de Arquiteturas de Software VAS - Verificação de Arquiteturas de Software CBDT – CBabel Development Tools Integração."

Apresentações semelhantes


Anúncios Google