Die ersten Schritte sind die schwersten

Praxis-Tutorial: Eclipse RCP Usability

Was geht noch?

Aus Gründen der Übersichtlichkeit haben wir auf die Internationalisierung der Texte verzichtet. Die in RCP etablierten Mechanismen über Properties-Dateien und die %-Notation funktionieren für Parameter in der plugin.xml. Für die Inhalte sind entsprechend Verzeichnisse mit den Kennungen für Sprache, Land und Kulturkreis möglich. Details hierzu finden Sie in unserem Walk-Through [2]. Komplett ignoriert haben wir die Möglichkeit, Welcome Pages auch in SWT zu erstellen. Dies ist aus unserer Sicht auch nicht sinnvoll, da Dokumentation und Programmierung sich normalerweise in disjunkten Universen abspielen.

Cheat Sheets: nicht mogeln, sondern helfen

Als allerersten Schritt möchten Benutzer normalerweise eine Anwendung ausprobieren, und zwar ohne erst einmal lange Anweisungen lesen zu müssen. Die Cheat Sheets (Spickzettel) sind interaktive Tutorials, die man direkt im Programm aufruft und durcharbeitet. Sie sind eine sehr geeignete Stelle, um die wichtigsten Abläufe der Anwendung und die Best Practices zu erläutern. Die Cheat Sheets bestehen aus Aufgaben, Schritten und Sub-Schritten, die der Benutzer selbst nachvollziehen oder vom Programm ausführen lassen kann. Schritte können voneinander abhängig oder unabhängig sein, können als optional gekennzeichnet werden und sogar das Hilfesystem verlinken. Kleinere Cheat Sheets lassen sich zu „Composite Cheat Sheets“ zusammenführen, um größere Aufgaben abzudecken. Wichtig bei den Cheat Sheets ist es, immer den einfachsten und eindeutigsten Weg zu zeigen und sich auf die Hauptfunktionalitäten zu beschränken. Auch für Anwendungsentwickler sind Cheat Sheets hilfreich: Wenn bei der Erstellung eines Cheat Sheets auffällt, dass eine Aufgabe sehr schwierig durchzuführen ist, deutet dies auf den Bedarf für eine grundsätzlichere Überarbeitung des Bedienkonzepts hin. Wie auch die Welcome Pages sind Cheat Sheets ohne jede Programmierung zu erstellen. Sie lassen sich dynamisch durch ein Plug-in jeder RCP-Anwendung hinzufügen. Dazu ist wiederum ein leeres Plug-in-Projekt nötig. Für unser Beispiel erstellen wir ein Plug-in mit der ID com.bredexsw.examples.mailbase.cheatsheets. Das Plug-in benötigt die Plug-ins org.eclipse.ui, org.eclipse.ui.cheatsheets und org.eclipse.help.ui für die weiteren Schritte.

Wie spickt man?

Dass Cheat-Sheets ein wichtiges Mittel zur Benutzerhilfe sind, kann man daran sehen, dass es für sie eine gute Unterstützung in der IDE gibt. Ein Cheat Sheet kann durch einen Wizard angelegt werden, der viele Details gleich mit erledigt. Nach der Ausführung des New-Wizards für Cheat Sheets (in der Kategorie User Assistance) ist ein Rahmen für ein Cheat Sheet erzeugt und im zugehörigen Editor geöffnet. Für das Beispiel wird zuerst ein Simple Cheat Sheet in der Datei MailRCPIntro.xml erzeugt. Die Bearbeitung dieser Datei sollte ausschließlich über diesen Editor erfolgen, da dann alle IDs und Referenzen automatisch gepflegt werden. Cheat Sheets bestehen aus wenigen Komponenten: einer Überschrift, einer Einführung und den Schritten des Tutorials. Die MailRCPIntro.xml sieht wie in Listing 4 aus:

Listing 4
Die RCP-Mail-Anwendung erlaubt keine besonders 
spannenden Aktionen.
      Klicken Sie auf den Briefumschlag, 
um einen Beispieldialog zu öffnen.
      

Im Cheat-Editor kann man ein Cheat Sheet im Framework registrieren. Dazu ist nur ein Klick auf den entsprechenden Link nötig. Im dann folgenden Dialog kann und sollte man eine Kategorie für die Anwendung anlegen. Die dadurch erzeugte Strukturierung ist speziell dann hilfreich, wenn Teile der Anwendung als Plug-in an anderer Stelle benutzt oder andere Plug-ins mit Cheat Sheets in die eigene Anwendung integriert werden sollen. Die Registrierung trägt die XML-Datei in den Extension Point cheatSheetContent ein. Sollte dies (übrigens ohne jede Fehlermeldung) nicht passieren, wurden die oben genannten Abhängigkeiten (Plug-ins) nicht eingetragen (Listing 5).

Listing 5

            RCP Mail Tutorial
         

Die IDs werden vom Editor automatisch generiert und verwaltet, es gibt also keinen Grund, sie speziell anzupassen. Der Verweis contentFile enthält schon die Vorbereitung auf Internationalisierung,

psenv::pushli(); eval($_oclass[„nl“]); psenv::popli(); ?>

psenv::pushli(); eval($_oclass[„“]); psenv::popli(); ?>

wird gegebenenfalls durch ein entsprechendes Verzeichnis ersetzt.

Mit den bisherigen Schritten ist ein Cheat Sheet komplett erstellt. Wenn das Plug-in nun der Anwendung hinzugefügt wird, sollte man eigentlich auf das Cheat Sheet zugreifen können. Das funktioniert allerdings nur, wenn die Anwendung schon eine passende Aktion bereitstellt. In der IDE ist dies ein Unterpunkt des Help-Menüs. Für die Beispielanwendung muss jedoch noch eine entsprechende Bedienung eingebaut werden. Auch dies funktioniert rein deklarativ. Dazu muss ein ActionSet als Extension-Point deklariert werden.

Die Werte für die IDs, Classes usw. sind extrem kritisch, ein kleiner Tippfehler führt u. U. zu vielen Stunden der Suche nach dem Grund, warum kein Menüeintrag erscheint. Zur Erhaltung der geistigen Gesundheit sollte dieses Segment aus dem Beispiel kopiert und direkt in die plugin.xml eingefügt werden. Nun sind der Menüeintrag und die Cheat Sheets verfügbar. Mittels der Launch Configuration base_cheatsheet ergibt sich die Situation wie in den Abbildungen 3 und 4 gezeigt.

Abb. 3: Cheat-Sheet-Auswahldialog

Abb. 4: RCP-Mail-Cheat-Sheet
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.