Eine Thunderbird-Erweiterung programmieren 5: XUL

Thunderbirds Nutzerinterface ist in XUL und JavaScript geschrieben. XUL ist eine XML Art, die Nutzerinterfacewidgets wie Knöpfe, Menüs, Toolbars, Trees etc. bietet. Wir fügen Widgets hinzu, indem wir neue XUL DOM Elemente in das Programmfenster hinzufügen und sie mit Scripts und angehängten Event Handlern modifizieren. Während XUL die Elemente des Nutzerinterfaces bietet, sind die Aktionen in JavaScript geschrieben.

Bei unserer erster Erweiterung fügen wir Text in die Thunderbird Statusbar ein. Die Statusbar ist ist in einer XUL Datei namens messenger.xul implementiert, die sich im chrome/messenger/content/messenger  Ordner innerhalb des omni.ja Archives befindet. Um diese XUL Datei lesen zu können, nutze die DOM Inspector Erweiterung (Nicht mehr ünterstützt) oder schau in das omni.ja Archiv, welches sich im Thunderbird Programmordner befindet. omni.ja kann ganz einfach durchsucht werden, indem man die Datei an einen anderen Speicherplatz kopiert und sie in omni.zip umbenennt. Solltest du mit einem Zip Manager Probleme haben (wie 7Zip), nutze einen anderen (wie WinRAR). In messenger.xul finden wir die Statusbar, welche ungefähr so ausschaut:

<statusbar id="status-bar" ...>
 ... <statusbarpanel>s ...
</statusbar>

<statusbar id="status-bar"> ist ein "Zusammenführungspunkt" für ein XUL Overlay. XUL Overlays sind eine Methode, andere UI Widgets zu einem XUL Dokument anzuhängen, sobald die Erweiterung startet. Ein XUL Overlay ist eine .xul Datei die XUL-Fragmente spezifiziet, um sie bei bestimmten Zussamenführungspunkten innerhalb eines "Haupt"-Dokuments" einzufügen. Diese Fragmente können Widgets zum Einfügen, Entfernen oder Bearbeiten spezifizieren. In diesem Beispiel fügst du eine Linie der Statusbar hinzu. Deshalb wird es zu einem Element mit der ID "Statusleiste". Das zeigt, wie die Thunderbirdarchitektur Erweiterungen erlaubt, die Nutzererfahrung zu ändern, ohne dabei die Installationsdateien zu ändern. Das erlaubt auch Versionsunabhängigkeit zwischen Thunderbird und Thunderbird-Erweiterungen.

Beispiel XUL Overlay Dokument

Erstelle eine neue Datei namens myhelloworld.xul innerhalb des content Ordners, den du vorhin erstellt hast, mit folgendem Inhalt:

<?xml version="1.0"?>
<overlay id="sample" 
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 <script type="application/javascript" src="chrome://myfirstext/content/overlay.js"/><!-- A reference to your JavaScript file -->
 <statusbar id="status-bar">
  <statusbarpanel id="my-panel" label="Date"/>
 </statusbar>
</overlay>

Das <statusbar> Widget names status-bar spezifiziert den Zusammenführungspunkt innerhalb des Programmfensters, das wir anhängen wollen. Wenn unsere Overlay Datei geparsed wird, nimmt die XUL Engine alle Unterelemente des <statusbar> Tags und führt die mit dem orginalen XUL Dokuments <statusbar> Tag zusammen. In dem Bespiel überhalb haben wir ein neues <statusbarpanel> Element definiert (Das als my-panel bezeichnet wird), das eine neue Instanz dieses Widgettyps erstellt und am Ende der Statusbar hinbaut. In Thunderbird erscheint es als Label auf der rechten Seite der Statusbar von Thunderbird und zeigt "Date" an.  Wir haben auch einen <script> Tag geschrieben, der eine Refezenz zur JavaScript Datei overlay.js beinhaltet. In der nächsten Sektion wirst du lernen, wie du JavaScript nutzt um dein Label so zu modifizieren, dass es das momentane Datum anzeigt.

Die overlay.js Datei wird in einer späteren Sektion erstellt. Deine Erweiterung wird auch ohne diese Datei funktionieren. Momentan kannst du diese Linie ignorieren, aber erinnere dich daran, dass das hier ist, wie du auf eine JavaScript Datei verweist.

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
Mitwirkende an dieser Seite: MVXl
Zuletzt aktualisiert von: MVXl,