160 likes | 253 Views
XUL - „ X ML U ser Interface L anguage“ „e X tensible U serinterface L anguage“ XML im Mozilla Projekt Gruppe 4. WS 2005/06 VU Semistrukturierte Daten 1 181.135. Agenda. Was ist XUL? Anwendung von XUL Weitere Informationen über XUL Beispiele…. Ausblick. Was ist XUL?.
E N D
XUL-„XML UserInterface Language“ „eXtensible Userinterface Language“ XML im Mozilla Projekt Gruppe 4 WS 2005/06 VU Semistrukturierte Daten 1 181.135
Agenda • Was ist XUL? • Anwendung von XUL • Weitere Informationen über XUL • Beispiele…. • Ausblick
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
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“)
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)
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“ />
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.
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>
XUL – Beispiel • XUL – Demo - Browser • XUL – Demo Stand Alone • z.B.: firefox -chrome file:///D:/Daten/Studium/WS2005/SemiStrukt1/XUL/bsp_basic/extended.xul
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
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
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");
Ausblick • MDA • Emerging Technologies Toolkit – IBM‘s Compound XML Document Editor • (XUL) Metamodell Plugin für Eclipse
Ausblick • Demo - Compound XML Document Editor
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)
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