Dieses Tutorial ist eine Anleitung für das Erlernen von XUL (XML User Interface Language). XUL ist eine plattformübergreifende Sprache, um die Benutzer-Schnittstellen (z.B. GUI) einer Anwendung zu beschreiben.
Dieses Tutorial demonstriert die Erstellung eines einfachen "Datei suchen"-Dialogs, in der Art des "Sherlock" auf dem Macintosh oder des "Suchen"-Dialogs von Windows. Bitte beachten Sie, dass nur das Fenster (GUI) erstellt wird. Dieses beinhaltet sehr eingeschränkte Funktionalität. Das tatsächliche Auffinden von Dateien ist nicht implementiert. An den Stellen, wo der "Datei suchen"-Dialog bearbeitet wird, ist am linken Rand eine blaue Linie gemalt. Sie können der Entwicklung des Dialogs einfach folgen, indem Sie die so markierten Stellen lesen.
Was ist XUL und warum wurde es entwickelt?
XUL (ausgesprochen "zuul" und reimt sich auf "cool") wurde entwickelt, um die Entwicklung des Mozilla-Browsers zu vereinfachen und zu beschleunigen. Es ist eine XML-Sprache und somit gelten alle Eigenschaften von XML auch für XUL.
Die meisten Anwendungen benötigen bei ihrer Entwicklung plattform-spezifische Abhängigkeiten und Eigenschaften - die Entwicklung von plattform-unabhängiger Software ist zeitraubend und teuer. In den letzten Jahren wurde eine Vielzahl von plattform-übergreifenden Anwendungen entwickelt. Die Programmiersprache Java hat zum Beispiel die Plattformunabhängigkeit als herausragende Eigenschaft. XUL ist eine Sprache, die speziell für plattform-übergreifende Benutzerschnittstellen (GUIs) entwickelt wurde. Es dauert lange, um eine Anwendung zu entwickeln - selbst für eine Plattform. Die Zeit des Kompilierens und Debuggens kann sich sehr strecken. Mit XUL kann die Benutzerschnittstelle schnell und einfach implementiert und geändert werden.
XUL hat alle Vorteile von anderen XML-Sprachen. Es können zum Beispiel XHTML oder andere XML-Sprachen, wie MathML oder SVG eingebunden werden. Zudem ist angezeigter Text in XUL einfach an den Standort des Anwenders anzupassen. Das heißt er kann mit wenig Aufwand in andere Sprachen übersetzt werden.
Welche Art von Benutzerschnittstellen können mit XUL erstellt werden?
XUL bietet die Möglichkeit die meisten Elemente zu erstellen, die in modernen Benutzeroberflächen vorkommen. Einige dieser Elemente sind:
- Eingabefelder, wie Textfelder oder Checkboxen
- Buttonleisten
- Menüleisten und Popup-Menüs
- Karteikarten
- Bäume für hierarchische oder tabellarische Darstellungen
- Tastenkürzel
Der angezeigte Inhalt kann mit dem Inhalt aus XUL-Dateien oder aus Datenquellen erstellt werden. In Mozilla schließen solche Datenquellen die Mailbox eines Anwenders, seine Lesezeichen und Suchergebnisse ein. Die Inhalte von Menüs, Bäumen und anderen Elementen können mit diesen Daten befüllt werden oder mit Ihren eigenen Daten, die in RDF-Dateien bereitgestellt werden.
Es gibt verschieden Arten, um XUL zu nutzen:
- Firefox-Erweiterung: Eine Erweiterung fügt dem Browser Funktionen hinzu, oft in der Form von zusätzlichen Buttons, Kontext-Menüs oder Anpassungen der Browser-Oberfläche. Dies geschieht durch die Verwendung einer XUL-Eigenschaft namens overlay (Überlagerung), die es erlaubt, die Oberfläche einer Quelle (in diesem Fall des Browsers) mit der Oberfläche der Erweiterung zu mischen bzw. zu überlagern. Erweiterungen können auch zu anderen Mozilla-Produkten, wie Thunderbird, Sunbird oder Songbird hinzugefügt werden.
- Standalone XULRunner Anwendung: XULRunner is eine gepackte Version der Mozilla-Plattform, die es erlaubt, Standalone-Anwendungen zu erstellen. Für das Starten einer solchen Standalone-Anwendung wird kein Browser benötigt, da sie eine eigene selbstausführbare Datei darstellen.
- XUL Paket: Zwischen den beiden oben beschriebenen Anwendungsformen steht das XUL Paket. Es wird auf dieselbe Art und Weise wie eine Erweiterung erstellt, wird aber wie eine unabhängige Anwendung in einem anderen Fenster ausgeführt. Ein XUL Paket wird verwendet, wenn Sie nicht die Größe einer kompletten XULRunner-Anwendung in Kauf nehmen wollen und nichts dagegen haben, dass die Anwendung aus einer Mozilla-Anwendung (Firefox, Thunderbird,...) gestartet wird.
- Entfernte XUL-Anwendung: Sie können ihren Code auch auf einem Webserver hinterlegen und in einem Browser öffnen - so wie sie jede andere Webseite öffnen. Diese Methode ist jedoch eingeschränkt, da Sicherheitseinschränkungen beachtet werden müssen. Zum Beispiel ist der Zugriff auf andere Fenster nicht möglich.
Die ersten drei Arten benötigen alle die Ausführung einer Installation auf dem Computer des Anwenders. Diese Arten haben dadurch keine Sicherheitsbeschränkungen, sodass sie, zum Beispiel, das lokale Dateisystem lesen und schreiben können. Für eine Erweiterung werden die XUL-Dateien und zugehörige Skripte und Bilddateien der Anwendung in einer einzigen Datei zusammengepackt, die vom Anwender heruntergeladen und installiert wird. Mozilla-Anwendungen, wie der Firefox, bieten einen Erweiterungsmanager an, der es erlaubt, Installationen zusammenzustellen, ohne viel komplizierten Code schreiben zu müssen.
Es ist auch möglich XUL-Dateien direkt aus dem Dateisystem oder von einer Webseite zu starten. Diese sind aber in ihren Möglichkeiten eingeschränkt und einige Aspekte von XUL können nicht ausgeführt werden. Wenn Sie XUL-Inhalte von einer entfernten Webseite laden möchten, muss der Webserver so eingestellt sein, dass er XUL-Dateien mit dem Content-Type "application/vnd.mozilla.xul+xml" senden kann. XUL-Code wird normalerweise in Dateien mit der Endung ".xul" gespeichert. Sie können XUL-Dateien in Mozilla wie jede andere Datei (z.B. HTML) öffnen, indem Sie die "Öffnen mit..."-Option im Datei-Explorer für eine solche Datei auswählen oder den Ort der Datei direkt in die Adressleiste des Mozilla Browsers eingegeben.
Welches Vorwissen brauche ich für dieses Tutorial?
Sie sollten eine Vorstellung von HTML und zumindest grundsätzliches Verständnis von XML und CSS haben. Hier sind einige Richtlinien:
- XUL-Elemente sollten alle in Kleinbuchstaben eingegeben werden, da XML auf Groß-Klein-Schreibung achtet (im Gegensatz zu HTML).
- Attribut-Werte in XUL müssen immer in Anführungsstrichen geschrieben werden, auch wenn es sich um Zahlen handelt.
- XUL-Dateien sind normalerweise in 4 Dateien aufgeteilt, eine für das Layout und die platzierten Elemente (*.xul), eine für Stil-Definitionen (*.css), eine für Bezeichnungsdeklarationen (*.ent, um auf den Ort des Anwenders zu reagieren) und eine für Scripte (*.script). Zusätzlich können weitere Dateien für Bilder oder plattform-spezifische Dateien verwendet werden.
XUL wird in Mozilla-Browsern unterstützt, die auf der Gecko-Engine basieren, z.B. Netscape 6 oder höher und Mozilla Firefox. Trotz diverser Änderungen in der XUL-Syntax, sollten die aktuellen Versionen der Beispiele korrekt ablaufen. Die meisten Beispiele sollten unter Mozilla 1.0 oder höher laufen. XUL ist ziemlich ähnlich in Firefox und anderen Browsern, obwohl es kleine Unterschiede gibt, wie zum Beispiel die Unterstützung für anpassbare Werkzeugleisten.
Dieses Tutorial versucht viel von der XUL-Funktionalität abzudecken, aber es können nicht alle Themen behandelt werden. Wenn Sie einmal vertraut mit XUL sind, können Sie die XUL-Referenz benutzen, um mehr über Eigenschaften von bestimmten Elementen herauszufinden.