Ferramenta para conversão de interfaces gráficas desenvolvidas em Delphi para a biblioteca GTK+ Acadêmico: Josimar Zimermann



Documentos relacionados
Delphi IDE. Jocélio Passos Delphi - IDE. Integrad Development Enviroment Ambiente de Desenvolvimento Integrado

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

PROJECT 1 Delphi Project (Extensão. DPR)

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

2. O AMBIENTE DE PROGRAMAÇÃO EM C

FundamentosemInformática

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

GERADOR DE DOCUMENTAÇÃO PARA LINGUAGEM C, UTILIZANDO TEMPLATES. Acadêmico: Vilmar Orsi Orientadora: Joyce Martins

Processamento de dados XML

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

EDITOR GRÁFICO PARA SEQUENCIAMENTO E NAVEGAÇÃO USANDO REDES DE PETRI. Maicon Mueller prof. Dalton S. dos Reis

Protótipo de sistema de consultas utilizando a linguagem SPARQL

FERRAMENTA PARA CONSTRUÇÃO DE INTERFACES DE SOFTWARE A PARTIR DE DIAGRAMA DE CLASSES

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

TESTE-PLAN: FERRAMENTA DE APOIO AO PLANEJAMENTO E CONTROLE DAS

Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML

Gerador de aplicativos Oracle PL/SQL WEB baseado na estrutura das tabelas do. Wagner da Silva Orientando Prof. Alexander Roberto Valdameri Orientador


Desenvolvimento de um integrador de sistemas por meio de leiautes

PROPOSTA PARA O TRABALHO DE CONCLUSÃO DE CURSO FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

VISEDU-CG 3.0: Aplicação didática para visualizar material educacional Módulo de Computação Gráfica

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

FERRAMENTA PARA CONVERSÃO DE INTERFACES GRÁFICAS DESENVOLVIDAS EM DELPHI PARA A BIBLIOTECA GTK+

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Cenário atual de uso e das ferramentas de software livre em Geoprocessamento

Software Livre e GIS: Quais são as alternativas?

IMPLEMENTAÇÃO DA TÉCNICA TEXT MINING APLICADO NO AMBIENTE DO EMPREENDEDOR. Acadêmico: Roger Erivan Gaulke Prof. Orientador: Dr.

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

#Criando Aplicações Web com o Delphi unigui

Objetivos do Curso. Você será capaz de:

INTEGRADOR DE MENSAGENS CORPORATIVAS PARA UMA INFRA-ESTRUTURA DE ELETRONIC DATA INTERCHANGE (EDI)

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Introdução ao Delphi. Introdução. Edições do Software. Capítulo 1. InforBRás - Informática Brasileira Ltda. O Que é o Delphi.

Microsoft.NET. Desenvolvimento Baseado em Componentes

GERAÇÃO DE INTERFACES ANDROID A PARTIR DO DELPHI

Semântica para Sharepoint. Busca semântica utilizando ontologias

Ferramentas RAD e DELPHI

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Delphi 7 Aula 02 Preço do Automóvel

Universidade da Beira Interior

Comparando Java e C#

Adriano Reine Bueno Rafael Barros Silva

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I

Programação Orientada a Objetos II

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Organizar a estrutura do site

Uso do Action₀NET com o PI System da OsiSoft

DESENVOLVIMENTO DE SOFTWARE DE VOTAÇÃO WEB UTILIZANDO TECNOLOGIA TOUCHSCREEN

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

PROTÓTIPO DE LABORATÓRIO DE EXPERIMENTAÇÃO REMOTA MULTIPLATAFORMA CLIENTE ACADÊMICO: NADER ZANOTTO ORIENTADOR: MIGUEL ALEXANDRE WISINTAINER

WEBQUESTER: FERRAMENTA PARA CRIAÇÃO DE WEBQUEST COM AVALIAÇÕES ON- LINE. Acadêmico: Yauari Vieira Orientador: Everaldo Artur Grahl

GUIA RÁPIDO DE UTILIZAÇÃO DO APLICATIVO RDB2LOD

Desenvolvimento de um sistema de gestão acadêmica com software livre Rodrigo Bainy Fagundes

Introdução ao Mapserver

Plano de Aula - Dreamweaver CS6 - cód Horas/Aula

PROTÓTIPO DE APLICAÇÃO PARA O PROBLEMA DE ROTEAMENTO DE VEÍCULOS EM DISPOSITIVOS MÓVEIS NA PLATAFORMA ANDROID

IDE (Integrated Development Environment) / RAD (Rapid Application Development)

PROTÓTIPO DE APLICATIVO PARA DISPOSITIVO MÓVEL (PDA) USANDO A TECNOLOGIA J2ME E BANCO DE DADOS

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Ferramentas para desenvolvimento de Software Livre

Delphi 7 Aula 01 Área do Triângulo

O Hardware e o Software do Computador

Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

Linguagens de. Aula 01. Profa Cristiane Koehler

Prof.: Clayton Maciel Costa

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Ambiente de Programação Visual. Framework.NET. Prof. Mauro Lopes. Ambiente de Programação Visual Prof. Mauro Lopes

Desenvolvimento de Aplicações Locais na Plataforma Microsoft

ESTUDO COMPARATIVO DE BIBLIOTECAS GRÁFICAS I TEGRADAS COM OPE GL

BANCO DE DADOS GEOGRÁFICOS

GUIA DE INÍCIO RÁPIDO NHS NOBREAK MANAGER 4.0 TOPOLOGIA MÍNIMA DE REDE PARA A INSTALAÇÃO E USO DO SOFTWARE COM GPRS

MÓDULO DE AVALIAÇÃO DO RETORNO DE INVESTIMENTO EM SISTEMA DE ANIMAL. Eduardo Ehlert Orientador: Mauro Marcelo Mattos

Acadêmica: Aline Cordeiro Prof. Orientador: Dr. Oscar Dalfovo

Minicurso introdutório de desenvolvimento para dispositivos Android. Cristiano Costa

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

APLICATIVO PARA CÁLCULO DE MÉTRICA DE SOFTWARE EM CÓDIGO-FONTE PL/SQL

Demoiselle Tutorial Módulo 1 Arquitetura

Modelagem UML com Software Livre. Palestrante: Marcio Junior Vieira

Introdução a Informática. Prof.: Roberto Franciscatto

Conteúdo Programático de PHP

RSB Firewall Language Linguagem de Programação Para Segurança de Redes

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Ciência da Computação. alyssonfm@lcc.ufcg.edu.br

UFG - Instituto de Informática

Lógica de Programação

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Genio desafios. O Genio entre os novos paradigmas da engenharia do software. quidgest@quidgest.com

SISTEMA WEBPARA EMISSÃO DE PEDIDOS ON-LINE APLICADO A UMA PAPELARIA. Eduardo Alex Thomsen Orientador: Wilson Pedro Carli

Sistema para aprendizado de Álgebra Relacional e Linguagem SQL

estiglp-11/ csharp e Fsharp 1 Relatório Linguagens de programação 11/12 João Caixinha nº5946

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Transcrição:

Ferramenta para conversão de interfaces gráficas desenvolvidas em Delphi para a biblioteca GTK+ Acadêmico: Josimar Zimermann Orientadora: Joyce Martins

Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento Conclusão Extensões

Introdução Aplicativos construídos em Delphi exclusivamente para a plataforma Windows Advento das plataformas alternativas ao Windows Necessidade de portabilidade e construção de interface gráficas Tempo e mão de obra para tornar aplicativos portáveis

Objetivos do trabalho Usar a biblioteca GTK+ como solução portável na construção de GUI Migrar GUI construídas no Delphi para um formato legível à GTK+ Permitir a utilização da mesma GUI através de diferentes linguagens de programação

Fundamentação teórica Conceitos: Definição de padrões com XML GUI Desenvolvimento de GUI no Delphi GTK+ Glade Trabalhos correlatos DelphiToWeb Extensão da ferramenta DelphiToJava-II ScriptCase

Definição de padrões com XML Formato padronizado Portável Adaptável Suporte para processamento pelas linguagens de programação Estrutura hierárquica

GUI Do inglês Graphical User Interface Utiliza a experiência do usuário Imita objetos conhecidos Utiliza padrões existentes Bibliotecas para construção de GUI Visual Component Library (VCL) Qt GTK+

Construção de GUI no Delphi Armazena informações da GUI separadamente Utiliza um formato próprio Hierarquia de componentes Propriedades Manipuladores de eventos

Construção de GUI no Delphi object Form1: TForm1 Left = 0 Top = 0 Caption = 'Exemplo' ClientHeight = 208 ClientWidth = 318 Color = clbtnface Font.Charset = DEFAULT_CHARSET Font.Color = clwindowtext Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poscreencenter PixelsPerInch = 96 TextHeight = 13 object Label1: TLabel Left = 8 Top = 8 Width = 58 Height = 13 Caption = 'Class name:' end object Edit1: TEdit Left = 8 Top = 23 Width = 121 Height = 21 TabOrder = 0 Text = 'TButton' end object Button1: TButton Left = 8 Top = 50 Width = 75 Height = 25 Caption = 'Create' TabOrder = 1 end end

GTK+ Acrônimo para GIMP ToolKit Criada em 1997 na Universidade da Califórnia Extensivamente utilizada no Linux GNOME Expandida para suportar outros sistemas Microsoft Windows Mac OS X Outros

GTK+

Glade Construtor de GUI para a GTK+ Fornece suporte a Libglade Fornece o recurso drag-and-drop Salva as definições da interface em XML Construção da GUI à parte da lógica do aplicativo

Glade <?xml version="1.0"?> <glade-interface> <!-- interface-requires gtk+ 2.16 --> <!-- interface-naming-policy project-wide --> <widget class="gtkwindow" id="window1"> <property name="visible">true</property> <property name="title" translatable="yes">exemplo</property> <property name="window_position">center</property> <signal name="delete_event" handler="window1_delete_event_cb"/> <child> <widget class="gtkvbox" id="vbox1"> <property name="visible">true</property> <property name="orientation">vertical</property> <child> <widget class="gtkentry" id="entry1"> <property name="visible">true</property> </widget> </child> </widget> </child> </widget> </glade-interface>

Trabalhos correlatos DelphiToWeb Conversão de GUI Delphi para páginas HTML Extensão da ferramenta Delphi2Java-II Conversão de componente de conexão com banco de dados ScriptCase Framework para construção de aplicativos Web com acesso a banco de dados

Desenvolvimento Requisitos Especificação Implementação Operacionalidade

Requisitos Requisitos funcionais Permitir a seleção dos diretórios de: Mapas; Entrada; Saída Realizar a conversão de.dfm para.glade Exibir o resultado da conversão: Em execução; No Glade

Requisitos Requisitos não funcionais Codificar para Pascal/Object Pascal para o compilador Free Pascal Implementar na IDE Lazarus 0.9.28.2 Desenhar a interface com auxílio do Glade Utilizar analisadores léxico, sintático e semântico Gerar código Pascal/Object Pascal para exibição do resultado

Especificação Ferramentas utilizadas Enterprise Architect gvim Artefatos gerados Diagramas de casos de uso Diagramas de pacotes Diagramas de classes Mapas XML para auxiliar a tradução

Especificação Casos de uso uc Use Case Model UC02. Selecionar o diretório de entrada UC01. Selecionar diretório dos mapas de tradução UC03. Selecionar o diretório de saída UC05. Visualizar o resultado da tradução Usuário UC04. Requisitar a tradução dos componentes

Especificação Diagrama de pacotes pkg Package Model Gals Property Translation VCL Abstract Proj ect Glade Transform Glade Ev ent Mapping Component Mapping

Especificação Diagrama de classes do pacote VCL Abstract class VCL Abstract TVCLRealValue TVCLIntegerValue TVCLIdentifierValue TVCLFileDataValue TVCLSetValue «interface» IVCLPropertyValue TVCLBooleanValue TVCLStringListValue 1 TVCLValueFactory «enumeration» TVCLValueKind 1 TVCLStringValue TVCLProperty TVCLComponent TDFM * 1

Especificação Diagrama de classes do pacote Glade class Glade TIntegerValue TBooleanValue TStringValue TRealValue «interface» IPropertyValue TProperty 1 A * TPacket TStringListValue * 1 TSignal * TWidgetIdFactory TGladeInterface * TWidget

Especificação Mapeamento da tradução Componentes Propriedades Eventos Utilização do padrão XML Hierarquias Portabilidade Flexibilidade

Especificação Mapa de componentes Tradução categorizada Simples Condicionada a propriedades Especial Classe GTK resultante Propriedades requeridas

Especificação Componente de tradução simples <?xml version="1.0" encoding="utf-8"?> <delphitogtk> <component class="tform" translation="simple"> <widget class="gtkwindow" /> </component> <component class="tlabel" translation="simple"> <widget class="gtklabel" /> </component> </delphitogtk>

Especificação Componente de tradução condicionada <component class="tscrollbar" translation="propertied"> <widgets> <widget class="gtkhscrollbar"> <properties> <property name="kind" type="identifier" check="equality value="sbhorizontal" /> </properties> </widget> <widget class="gtkvscrollbar"> <properties> <property name="kind" type="identifier" check="equality value="sbvertical" /> </properties> </widget> <widget class="gtkhscrollbar" /> </widgets> </component>

Especificação Componente de tradução especial O tradutor é uma classe compilada <component class="tpanel" translation="special translator="tpaneltranslator" />

Especificação Mapa de propriedades <class name="tprogressbar"> <groups> <group translator="alignment"> <properties> <property name="position" required="true" type="integer default="0" /> <property name="step" required="true" type="integer default="10" /> <property name="min" required="true" type="integer default="0" /> <property name="max" required="true" type="integer default="100" /> </properties> </group> </groups> </class>

Especificação Mapa de eventos <component class="tcombobox"> <event vcl="onselect" gtk="changed"> <arguments> <argument name="widget" type="pgtkcombobox" /> <argument name="userdata" type="gpointer" /> </arguments> </event> </component>

Implementação Ferramentas utilizadas Lazarus IDE, versão 0.9.28.2 Biblioteca GTK+ runtime para Windows Glade, versão 3.6.7 GALS Recursos e técnicas utilizadas Generics (disponibilizado pelo Free Pascal) POO

Implementação Carregamento dos mapas de tradução Classe TComponentMap carrega o arquivo components.xml Classe TPropertyMap carrega o arquivo properties.xml Classe TEventMap carrega o arquivo events.xml

Implementação Interpretação do arquivo.dfm Utilização dos analisadores léxico, sintático e semântico Analisador semântico alimenta o pacote VCL Abstract Instancia a classe TDFM Adiciona os componentes Adiciona as propriedades

Implementação Classe TDFMTranslator realiza a tradução do objeto TDFM Utiliza os mapas para auxiliar na tradução Processo de tradução Componentes Propriedades Eventos A tradução resulta um objeto TGladeInterface Transforma TGladeInterface em XML Gera código Pascal para carregar a GUI

Operacionalidade Usuário informa a ferramenta... Diretório de localização dos mapas Diretório de localização do arquivo.dfm Diretório de saída do arquivo traduzido Usuário solicita a tradução Ferramenta informa o resultado da tradução

Operacionalidade Após traduzida a interface o usuário pode... Visualizar a tradução no Glade Visualizar a tradução em execução Visualizar código fonte que carrega a interface

Operacionalidade Exemplo de tradução

Resultados e Discussão Desenvolvida com software livre Desenvolvida para fornecer portabilidade Free Pascal XML GTK+ Permite a adição de tradutores para novos componentes

Resultados e Discussão Quadro comparativo característica linguagem de programação oferece flexibilidade para conversão traduz a interface para uma tecnologia portável suporte para acesso a banco de dados a interface traduzida pode ser migrada para diferentes linguagens de programação DelphiToWeb Java Extensão da ferramenta Delphi2Java-II Java ScriptCase PHP e Javascript DelphiToGTK+ Pascal/Object Pascal Não Não - Sim Sim Sim - Sim Não Sim Sim Não Não Não - Sim

Conclusões Auxílio na migração de aplicações Delphi Utiliza biblioteca multi-plataforma e multi-linguagem Possibilidade de migração para outras linguagens de programação

Extensões extensão Integrar a ferramenta ao motor de script Pascal Script de forma a flexibilizar a construção de rotinas para tradução de componentes complexos, dispensando a necessidade de recompilar a aplicação. Para componentes da VCL que não podem ser traduzidos segundo as especificações da Libglade, verificar a possibilidade de gerar código capaz de criar os elementos gráficos em tempo de execução. Criar uma extensão para permitir gerar interfaces gráficas para o formato suportado pela classe GladeXML da GTK+. Desenvolver uma interface gráfica para auxiliar na construção de arquivos de mapeamento de componentes, propriedades e eventos. Criar esquemas XML para validação dos mapas de tradução para realizar a validação na aplicação, diminuindo o risco de erros. Gerar código para carregamento da interface gráfica traduzida para diferentes linguagens de programação que suportam a GTK+. complexidade 10 10 8 8 8 7 Realizar a tradução do componente TFrame da biblioteca VCL. 1