XUL - X ML U ser Interface L anguage e X tensible U serinterface L anguage XML im Mozilla Projekt...
Transcript of XUL - X ML U ser Interface L anguage e X tensible U serinterface L anguage XML im Mozilla Projekt...
XUL-
„XML User Interface Language“
„eXtensible Userinterface Language“
XML im Mozilla Projekt
Gruppe 4
WS 2005/06
VU Semistrukturierte Daten 1181.135
2
Agenda
• Was ist XUL?
• Anwendung von XUL
• Weitere Informationen über XUL
• Beispiele….
• Ausblick
3
Was ist XUL?
• „eXtensible Userinterface Language“ oder auch „Xml Userinterface
Language“
• eine XML basierte Beschreibungssprache für die Implementation von
GUIs
• aus dem Mozilla-Projekt
• stark an (W3C-)Standards orientiert
• plattform-neutral, zumindest theoretisch denn für die jeweilige
Zielplattform muss der Mozilla-XUL-Toolkit dementsprechend portiert
werden
4
Anwendung von XUL
• Mozilla und seine Geschwister
(Netscape, FireFox, ...)
• Als „Chrome“ und als „Content“ verwendbar.
Web-Applikationen
Client in Client-Server-Systemen
Stand-alone-Applikationen
(XRE: „XUL Runtime Environment“)
5
Weitere Informationen über XUL
• XUL wird von allen Mozilla basierten Anwendungen unterstützt
• Im Grunde besteht eine Mozilla Anwendung (z.B. ein Browser) „nur“
aus einer Menge XUL-Dateien, JavaScripts und Style Sheets
• XUL ist case-sensitive (im Gegensatz zu z.B. HTML)
• Attribute (auch numerische Werte) müssen in Anführungszeichen
stehen (value=“5“ statt value=5)
6
XUL enthält keine Programmlogik
• Ein XUL-Interface ist erstmal „nur“ eine Sammlung loser Widgets
ohne Funktionalitäten.
• Funktionalität kann z.B. durch JavaScript eingebracht werden.
• Komplexe Hochsprachen wie C++ können natürlich auch verwendet
werden, sind aber oft übertrieben.
• JavaScript kann im Quelltext der XUL-Datei eingebunden sein,
sollte aber zur besseren Übersicht ausgelagert werden:
<html:script language=“javascript“ src=“meinjavascript.js“ />
7
Chrome
• Komponenten werden üblicherweise im Unterverzeichnis chrome
der Mozilla-Installation abgelegt.
• Chrome bezeichnet die UI-Teile des Anwendungsfensters ohne den
Inhaltsbereich, also
Toolbars
Menüleisten
Statusleisten usw.
• Für jede Komponente wird entweder eine Unterverzeichnis-Struktur
angelegt oder diese in eine .jar - Datei komprimiert.
8
XUL – Basic Schema eines XUL-Dokuments
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<window title="Meine XUL-Anwendung" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<groupbox orient="horizontal"> <caption label="Meine erste XUL-Anwendung"/> <description> Das ist ein XUL-Dokument. Leider ist es noch nicht interaktiver als eine HTML-Seite. </description></groupbox></window>
9
XUL – Beispiel
• XUL – Demo - Browser
• XUL – Demo Stand Alone z.B.: firefox -chrome file:///D:/Daten/Studium/WS2005/SemiStrukt1/XUL/bsp_basic/extended.xul
10
XUL – Grundlegende Komponenten (XPFE - Framework)
• Struktur und Beschreibung von UI-Elementen mit XUL, XHTML, …
• Look & Feel: mittels CSS und Images
• Applikationslogik durch Skriptsprachen (z.B.: JavaScript)
• DTD‘s (und .properties-Dateien)
• zur Lokalisierung für verschiedene Sprachen
11
Weitere Komponenten
XPInstall (Cross-Platform Installation)
XBL (eXtensible Binding Language)
• Zum Erstellen von wiederverwendbare Widgets aus bestehend aus XUL und JavaScript
XPCOM/XPConnect
• Interfac für den Zugriff von ScriptSprachen aus auf C und C++ Libraries
Resource Description Framework (RDF)
• „Manifest“ Dateien der XUL Applikationen • <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
XUL Templates
• Laden Daten aus einer Kombination von RDF und XUL in die Applikation
12
Ausblick
• Zukunftstrend:
XUL UI Beschreibung in einer einzelner Datei ausliefern
package als root Element, statt window
main window durch parsen finden und starten
Package *package =
LoadPackage("http://xxx/package.xul");
InstantiateWindow(package, GetNodeWithID("main");
13
Ausblick
• MDA
Emerging Technologies Toolkit – IBM‘s Compound XML Document Editor
• (XUL) Metamodell Plugin für Eclipse
14
Ausblick
• Demo - Compound XML Document Editor
15
Ausblick
• MDA - wünschenswert:
Graphischer Editor für das XUL Metamodell statt Baumstruktur
• zB in Kombination mit UML Metamodell
• Luxor: XUL-Implementation in Java
(Kompatibilität aber nicht angestrebt)
16
Ressourcen zu XUL
• http://www.mozilla.org/projects/xul/
• http://www.mozilla.org/xpfe/
• http://www.xulplanet.com/
Umfangreich mit gutem Tutorial und XUL Referenz
• http://www.hevanet.com/acorbin/xul/top.xul
XUL Elemente Grundelemente Source + Demo‘s
• XUL - Anwendungen:
• https://addons.mozilla.org/extensions
/showlist.php?application=firefox&category=XUL%20Applications