Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Eike Brändle

Eike Brändle

WiX Toolset Teil 2: Wie sieht das denn aus? – Das WiX Toolset User Interface

Dienstag, 07. Juni 2016

Das WiX Toolset wird bereits mit verschiedenen Benutzeroberflächen ausgeliefert. So kann ein einfacher Installationsassistent durch das Hinzufügen eines UIRef Elementes innerhalb des Product Elementes erstellt werden. Diese bereits mitgelieferten User Interfaces bieten verschiedene, anpassbare Optionen. So ist beispielsweise eine Installationsroutine, die das Einstellen des Installationspfades erlaubt, genauso enthalten wie ein Assistent, der das an und abwählen von Features integriert. Eine Liste aller bereits enthaltener Benutzeroberflächen und deren Anwendung finden sie hier.

Doch was ist, wenn die Standard Oberflächen nicht ausreichen? Am Beispiel eines erweiterten EULA Dialogs möchte ich an dieser Stelle die Möglichkeiten zur Individualisierung der Benutzeroberfläche aufzeigen. Um die Anforderungen einer internationalen Anwendung zu erfüllen, muss natürlich auch die EULA in verschiedenen Sprachen vorliegen. Um diese im Installationsassistenten anzeigen zu können, benötigt unser Dialog eine Sprachauswahl. Dazu erstellen wir einen komplett eigenen Dialog.

Die Definition eines neuen Dialoges erfolgt an beliebiger Stelle innerhalb eines UI Elements. Dazu wird ein neues Dialog Element inklusive ID erstellt und mit beliebig vielen Control Elementen befüllt. Im Folgenden Screenshot wird die komplette Definition eines Dialoges zur EULA Auswahl dargestellt.

clip_image002

Die Unterscheidung der Sprachen innerhalb des Dialoges erfolgt über das Property LicenseLanguage, das außerhalb des Dialoges definiert wird und den initialen Wert „en“ erhält.

clip_image004

Um dieses Property zu beschreiben werden in der Benutzeroberfläche Radiobuttons verwendet. Diese werden über ein Control vom Typ RadioButtonGroup eingefügt. Über die X und Y Werte können die Positionen innerhalb des Fensters bestimmt werden. Das Property Attribut gibt an, welches Property durch die Radiobuttons beeinflusst werden soll. Die einzelnen Radiobutton Elemente beinhalten schließlich einen Wert, der bei der Auswahl in das Property geschrieben wird sowie einen Text, der neben dem Button angezeigt wird. In diesem Fall kommt der Text aus einer Lokalisierungsdatei.

clip_image006

Der Dargestellte Text wird schließlich auch wieder über ein Control bestimmt. Dieses Control hat den Typ ScrollableText, um auch größere Texte lesbar zu gestalten. Der Text selbst wird über das Text Element aus einer Datei im RTF Format eingelesen. Um die Auswahl zu ermöglichen werden noch zwei Condition Elemente eingefügt, die das Control verstecken, beziehungsweise anzeigen, wenn das LicenseLanguage Property bestimmte Werte einnimmt. Um Operatoren abzubilden, die der XML Parser als XML Syntax erkennen würde, bedienen wir uns des CDATA Elementes.

clip_image008

Analog dazu wird auch das Akzeptieren der Lizenz verwaltet. In einer Checkbox wird das Property LicenseAccepted auf den Wert 1 gesetzt, wenn die Checkbox markiert wurde. Im „Next“ Button wird überprüft, ob der Wert des Properties 1 ist, ansonsten wird der Button deaktiviert. Der Unterschied ist an dieser Stelle, dass das Property LicenseAccepted nicht im Vorfeld angelegt, sondern direkt im Checkbox Element erzeugt wird.

clip_image010

clip_image012

Natürlich soll der Dialog auch das Logo der Anwendung beinhalten. Dazu wird ein Control vom Typ Bitmap angelegt, das als Text Attribut die ID eines Binary Properties übergeben bekommt. Dieses zeigt auf eine in den Ressourcen hinterlegte Bitmap Datei.

clip_image014

clip_image016

Nachdem der Dialog erstellt wurde, muss er nun in den bestehenden Installationsassistenten integriert werden. Dazu werden alle Dialoge der Reihenfolge nach in Publish Elementen unterhalb des UI Elements aufgelistet. Innerhalb des Publish Elements wird der Dialog spezifiziert, der ein bestimmtes Control beinhaltet. Diesem Control werden schließlich Events zugewiesen. Im gezeigten Beispiel werden die Standard-Dialoge WelcomeDlg, VerifyReadyDlg und ExitDialog genutzt, und der MyLicenseAgreementDlg dazwischen eingefügt. Dabei wird auch noch einmal überprüft, ob das LicenseAccepted Property den Wert 1 beinhaltet.

clip_image018

Und so sieht der fertige EULA Dialog aus:

clip_image020

 

Im nächsten Teil der WiX Blog-Reihe lesen sie, wie sie Shortcuts richtig erstellen, sowie eine installierte Anwendung auch wieder sauber vom System entfernen.

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags: , , ,

Hinterlasse eine Antwort