XUL – Desenvolvendo Aplicações Com Mozilla / Firefox
Total Page:16
File Type:pdf, Size:1020Kb
XUL ± Desenvolvendo Aplicações com Mozilla / Firefox Marcio Junior Vieira [email protected] Marcio Junior Vieira www.ambientelivre.com.br Palestrante - Marcio Junior Vieira ● A 7 Anos trabalha da área de Desenvolvimento e Análise de sistemas. ● Trabalha com Software Livre desde 2000. ● Formado em tecnologia em Informática e Pós-Graduado em Informática (Software Livre) pela UFPR. ● Consultor de Soluções em Software Livre pela Ambiente Livre. ● Consultor em Sistemas de Gestão Empresarial GCI Informática. Marcio● JunioPar Vrieticira ip a n te d o g r u p o X U L Br a sil. www.ambientelivre.com.br Construir aplicações web e desktop. Introdução ● O que é XUL? ● Pacotes ( chrome ). ● Histórico. ● RDF ● Firefox. ● XULRunner. ● Arquivo XUL. ● Elementos XUL. ● Suporte XUL. ● XBL. ● XPCOM. ● Ferramentas XUL. ● Exemplos de aplicações. ● Livros. ● Curiosidades ● Links Marcio Junior Vieira www.ambientelivre.com.br O que é XUL ? ● XUL é a sigla para XML User Interface Language. ● Inicialmente foi criado para tornar o desenvolvimento do navegador Mozilla mais fácil, rápido e portável. ● É uma linguagem de tags baseada na tecnologia XML, e como o XML tem as vantagens de outras linguagens de marcação como XHTML, MathML, SVG,etc. ● É uma linguagem multi-plataforma para desenvolver interfaces gráficas de usuários (GUI ± Graphical User Interface). ● Atualmente apenas os browsers da família Mozilla, Netscape e outros baseados neles, tem suporte a tecnologia XUL. ● O nome XUL é uma referência ao filme Caça-Fantasmas. Marcio Junior Vieira www.ambientelivre.com.br Mozilla Firefox ● WEB Browser. ● + de 100 milhões de downloads. Marcio Junior Vieira www.ambientelivre.com.br Histórico. ● 1997 - ªGuerra dos browsersº a Netscape, líder de mercado até o que a Microsoft começou a liberar gratuitamente juntamente seu SO o seu produto o IE. ● 1998 - Por Influência do Livro ªThe Cathedral and the Bazaarº de Eric Raymond, diretores da Netscape decidiram liberar todos os fontes do seu browser. ● 1998 - É formando o projeto Mozilla. ● 2003 - Criada a Mozilla Foundation, com sustentação inicial da América Netscape, para sustentação organizacional, legal, e financeira para o projeto do software Open Source Mozilla. Marcio Junior Vieira www.ambientelivre.com.br Histórico. ● 2004 No Final do ano no lançamento do browser Mozilla Firefox 1.0 algo de surpreendente começava a acontecer, apenas nos primeiros dias de liberação foram feitos mais de 2 milhões de downloads do browser. ● 2005 ± O Browser Firefox é reportagem em inúmeros meios de comunicações. ● 2005 ± NetApplications , empresa que atua no monitoramento de trafego de internet apontava crescimentos do uso do Firefox próximos a 1% ao mês , que chegou em maio de 2005 com uma fatia de mais de 8% do mercado dos browser que somados aos browser Netscape e Mozilla ultrapassavam 10% do mercado. Marcio Junior Vieira www.ambientelivre.com.br ªThe New York Timesº 100.000 fãs patrocinam anuncio Marcio Junior Vieira www.ambientelivre.com.br Firefox ± Março 2006 Arquitetura Arquivo XUL. <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="arquivo-exemplo" title="Exemplo de Janela ± File XUL" orient="horizontal" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> ... </window> Marcio Junior Vieira www.ambientelivre.com.br Tecnologias Suportadas ● ● HTML 4.0 e XHTML ● GIF, JPG, PNG, XML Base BMP, ICO ● ● CSS2 a alguns CSS3 XML images ● ● DOM2 e alguns DOM3 XPointer ● HTTP 1.1 ● ● ECMAScript/Javascript FIXPtr ● MathML ● ● Object Access Protocol) XML-RPC ● RDF ● ● WSDL (Web Services SOAP (Simple ● XSLT Description Language) Object Access ● Protocol) ● XPath XBL (eXtensible ● Bindings Language) ● Simple XLinks AJAX Marcio Junior Vieira www.ambientelivre.com.br Organização de pacotes - Mozilla (Chrome) ● Conteúdo (content )- Janelas e scripts. ● Skin - Folhas de estilo e imagens. ● Localidade ( Locale ) Marcio Junior Vieira www.ambientelivre.com.br Pacotes ( Chrome ) ● Os pacotes são compactados como JAR ( Java ARchive). ● A instalação pode ser feita através de arquivos XPI ( XPInstall). ● Os pacotes instalados são descritos nos arquivos chrome.rdf e installed-chrome.txt Marcio Junior Vieira www.ambientelivre.com.br XPFE Ambiente criado pelo XPToolkit. Marcio Junior Vieira www.ambientelivre.com.br RDF - Resource Description Framework ● São modelos ou fontes de dados ( Metadata ) ● tecnologia recomendada pela W3C. ● Criar um modelo simples de dados, com uma semântica formal e usar o vocabulário URI-based, usar uma sintaxe XML-based e suportar o uso de XML. ● KDE 4 - Desktop ( Plasma ) utiliza também desta tecnologia. Marcio Junior Vieira www.ambientelivre.com.br Atributos dos elementos Atributo Tipo Descrição Height Integer Altura da Janela. Hidechrome Booleano Registra o chrome para poder ter ele incluído no titlebar hidden. Id Element id Identificador da Janela. ScreenX Integer Posição vertical que o janela aparece na tela. ScreenY Integer Posição vertical que o janela aparece na tela. Maximized– Maximiza a janela, Ocupando a tela completa. Sizemode Minimized- A Janela e Minimizada , ou escondida. Pré-definido Normal- A janela aparece em um estado normal. Title Alfa-Numérico Texto da Barra de título da janela. Width Integer Largura da Janela. Windowtype Alfa-Numérico Ajuste uma string que possa ser usada identificar o tipo de janela. Propriedades e Métodos Tipo Descrição AccessKey Caracter Ajusta o valor do atributo accesskey. Accessible nslaccessible Retorna o objeto da acessibilidade para o elemento. Marcio Junior Vieira www.ambientelivre.com.br Elementos XUL. Marcio Junior Vieira www.ambientelivre.com.br Elementos XUL Marcio Junior Vieira www.ambientelivre.com.br Elementos XUL Marcio Junior Vieira www.ambientelivre.com.br XULWareHouse. ● Armazém de Componentes XUL. ● Elementos XUL exemplos com os fontes. ● XBL / RDF. ● http://www.ambientelivre.com.br/xulwarehouse/ Marcio Junior Vieira www.ambientelivre.com.br XBL - eXtensible Building Language ● Criar elementos ou componentes de interface personalizados e ligar eles a outros elementos XUL, XML ou HTML. ● Sua utilização é muito prática fácil e flexível, é necessário apenas uma sintaxe especifica para criação de componentes com o XBL ● Geralmente os componentes XML são alocados em arquivos com extensão .xml e chamados pelos arquivos .xul ou .css através do comando -moz-binding : url ( ªlink para arquivo xmlº # ªcomponente XMLº) . Marcio Junior Vieira www.ambientelivre.com.br XBL- Construir Componentes personalizados <?xml version="1.0"?> <bindings xmlns="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.o nly.xul"> <binding id="BotaoCadastro"> <content> <xul:button label="Ok" /> <xul:button label="Cancel" /> <xul:button label="Close" /> </content> </binding> </bindings> Marcio Junior Vieira www.ambientelivre.com.br XUL e JavaScript <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="xuledit" xmlns="http://www.mozilla.org/keymaster/gatekeeper/the re.is.only.xul" title="XUL and JavaScript" onload="init()"> <script type="application/x-javascript"> function msg() { alert('JavaScript Test'); return false; } </script> <button id="open" label="Button with JavaScript" onclick="msg()"/> </window> Marcio Junior Vieira www.ambientelivre.com.br XUL e CSS <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="estilo.css" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> </window> Marcio Junior Vieira www.ambientelivre.com.br XUL com PHP <?php header("Content-type: applicatin/vnd.mozilla.xul+xml"); $filename = ""; echo ©<?xml version="1.0"?>©; echo ©<?xml-stylesheet href="chrome://global/skin" type="text/css"?>©; echo ©<?xml-stylesheet href="lagartixa.css" type="text/css"?>©; ?> <window title="XUL and PHP" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only. xul" > ... ... You XUL Code! ... </window> XPCOM ● São interfaces criadas para chamar códigos nativos ou aplicativos externos. ● Atualmente existem diversas interfaces, e a tecnologia permite que muitas outras interfaces sejam construídas. ● XPConnect - Camada que traduz obj. de script para obj. nativos. ● Suportado por todas as plataforma que hospedam um bom compilador C++: (Linux,Windows,HP-UX,Solaris,BSD,etc) ● Exemplo: NslSound ± Interface Utilizada para tocar arquivos de aúdio, que pode ser chamada em uma aplicação XUL. ● O XPCOM não é uma particularidade do Mozilla ele é utilizado por outros diversos aplicativos. Marcio Junior Vieira www.ambientelivre.com.br Interfaces ● Accessibility. ● DOM. ● XML. ● Address Book. ● DOM Inspector. ● XML Schema. ● Browser Components. ● Docshell and Content Viewers. ● Localization. ● Clipboard and Selection. ● Editor. ● News. ● Content and Layout. ● Files and Streams. ● Plugins. ● Cookies. ● Graphics and Widgets. ● RDF. IPC. ● Core. ● Security and Privacy. ● Images. ● XPInstall. ● Web Browser. ● JavaScript. ● XUL. ● Web Services. ● JavaScript. Debbuger ● LDAP. ● Window Management. ● Mail. ● Network. Marcio Junior Vieira www.ambientelivre.com.br XUL e Outras Linguagem ● C/C++ - Através do XPCOM podemos trabalhar com bibliotecas compartilhadas desenvolvidas em C/C++ , como os DLL no windows ou os arquivos .so das variações de Linux/Unix. ● PHP ± Interage com XUL da mesma forma que o PHP interage com o HTML. ● Python - Atualmente existe uma implementação de XPCOM chamada PyXPCOM, que interagem com XUL. Marcio Junior Vieira