Home
Diplomarbeit
Contents
1. Zusammenfassung ndern des von der Anwendung verwendeten Stylesheets Akteur TSI Mitarbeiter Bedingung UC 01 Ablauf 1 Starten der Anwendung 2 Starten des Skinning Features 3 Ausw hlen des Stylesheets aus einer Liste 4 Fortfahren mit UC 05 Alternative Bedingung Alternativer Ablauf Notizen und Fragen Zur nderung des verwendeten Stylesheets stehen Hinweise im Benutzerhandbuch der modifizierten Anwendung zur Verf gung Analyse Seite 52 Tabelle 6 Anwendungsfall 5 Zuweisen eines Skins UC 05 Zuweisen eines Skins Zusammenfassung ndern des von der Anwendung verwendeten Skins Akteur TSI Mitarbeiter Bedingung a UC 02 b Im Stylesheet Dokument sind mindestens zwei Skins definiert c UC 04 Ablauf 1 Beginn mit UC 04 2 Auswahl eines Skins aus einer Liste 3 Best tigen der Auswahl durch Dr cken des entsprechenden Buttons 4 Schlie en der Anwendung 5 Erneutes Starten der Anwendung um die nderungen sehen zu k nnen Alternative Bedingung Alternativer Ablauf Notizen und Fragen Zur nderung des verwendeten Skins stehen Hinweise im Benutzerhandbuch der modifizierten Anwendung zur Verf gung Anhand dieser Definitionen der einzelnen Anwendungsf lle sowie der vorangegangenen Analyse der bestehenden Anwendung lassen s ch Anforderungen an das neue System ableiten auf die im folgenden Kapitel eingegangen werden soll 4 6 Resultierende Anfo
2. Program Files ESGClient gesucht wird Ge Pocket PC 2003 Second Edition Emulator Hilfe Stylesheet sts MyStylesheet sts StandardSkin Colorfulskin Abbildung 28 Screenshot des implementierten Skinning Features Bei Auswahl eines Stylesheets wird das Event SelectedIndexChanged ausgel st Zu dessen Behandlung wurde die Methode stylesheets_SelectedIndexChanged implementiert welche das Stylesheet mittels eines xMLTextReader Objektes Tag f r Tag nach MxComponent Elementen und dem zugeh rigen Attr but Name durchsucht und daraufhin alle gefundenen Skins auflistet Wird ein Skin ausgew hlt und die Auswahl ber den Ok Button best tigt so wird eine MessageBox mit der Meldung ausgegeben dass die Anwendung neu gestartet werden muss Stylesheet und Skin werden vermerkt und beim Schlie en des ClientMainForms von einem StreamWriter Objekt in die Textdatei geschrieben Diese Speicherfunktion wurde nachtr glich zur Methode btnExit_Click nachtr glich hinzugef gt In die Textdatei werden vier Eintr ge geschrieben das zuletzt Implementierung Seite 75 verwendete Stylesheet das neue Stylesheet der zuletzt verwendete Skin und der neue Skin Beim n chsten Start der Anwendung wird die Datei erneut ausgelesen und der zuvor ausgew hlte Skin verwendet Dazu werden alle als Strings eingelesenen MyXaml Dokumente jeweils nach den alten Eintr gen durchsucht und die darin befindlichen alten Namen durch die neuen ersetzt
3. TVZapPlug In Panel NH Statusbalken Listen Navigations Buttons x Zeitinformationen Anbieter Buttons Fa ka um 1 Genre J Parental Adwipe Hio Restriction Chck Purchase e r Kurzbeschreibung Altersempfehlung for Details E F Info Panel Kosteninformationen Buttons zum Kaufen Informieren Starten Abbildung 16 Screenshot des bestehenden TVZapPlugIns Das TVZapPluglIn gibt eine bersicht ber alle verf gbaren TV Services Die dazu ben tigten Daten werden um desem Fall mit Hilfe der Methode getCurrentVideoltems aus dem DVB H AL abgerufen Diese Vorgehensweise soll unver ndert bleiben Das Plug In ist defmiert durch due in Abbildung 17 dargestellten sechs Klassen Den Einstiegspunkt in das Plug In bildet dabei die Methode getContentPanel der Schnittstelle IESGPlugIn Bei deren Aufruf durch den Client wird eine Instanz der Klasse MyPanel erzeugt Das entstehende Panel stellt das Plug In dar welches daraufhin vom Cl ientMainForm eingebunden und angezeigt wird Analyse Seite 43 cd TYZapPrlugin ZE SG JESGAlugaT T zapping TYrZappingl getFlugln Description string getT ablcon Bitmap getBiglcond Bitmap getSmalllconc Bitmap getlontentFanell Panel getFluginNHameil string Panel MyFanel binlp ImageButton bin EC own ImageButton alFrowiderList wiwite m List all urentWideoltems ArrayList pinfo Pinfofenster mareProwider Araylist arowButtons Aral Let EE vw anelch contentFan
4. E ButtonClickEventArgs IESGPlugin 8 CursorMoveEvent rgs TT ImageButton TVZapPlugin lt lt Package gt gt MyXami lt Package gt gt E Break 9 IMyXaml b ISupportinitialize TT MxBinding 8 MykXaml utolnitialize amp ttrikute TT Objectinto E Parser E PropertyModelBase S PropertySetException DotHet1_1 lt lt Package gt gt 8 BitmapModel TT DataBindingModel TT ObjectModel Extensions lt lt Package gt gt E MyPane ee ce TT StringHelpers E TVZapping f E Trace TT DatarowModel E E TypeDecoder D E DataSourceTypeConverter 8 MxDatacolumn TT MxDatarowModel TT MxOpenfileDialog TT MxRadioButton TT MxStylecustomproperty TT NullMode TT PropertyStyle 8 PropertyStyleModel E Style TT SubFormCustomProperty AudioZapPlugin lt lt Package gt gt TT Audiozapping E MyPanel L I ServiceZapPlugin lt lt Package gt gt TT MyPanel TT Servicezapping lt lt Package gt gt lt lt Import gt gt Et TT Auactem g er E Category TT ContentProvider TT DvBHaL TT Gene TT HierarchicalPath InfoPanel lt lt Package gt gt E HierarchyFlattener H tem 8 PurchaseDetail TT Serviceltem 8 videoltern S MyMessageBox TT Pinfofenster lt e lt import gt gt L Abbildung 30 Package Diagramm des resultierenden modifizierten ESG Client Die Ver nderungen zum urspr nglichen Aufbau der einzelnen Klassen sind anhand der neuen Klassendiagramme zu erkennen die sich im Anha
5. index int normallmage Image vlndex int pushedilmage Image focusedlmage Image LursorlioveEvent rgs string int int actvelmage Image property Directionl String isFushed bool property Alnde int isFocused bool property Ylndexi int isActiwe boal xindex int vIndex int isFocusable bool Erenmt ms id String Botton Click Ewent Args linked bject Object m_bmp ffscreen Bitmap ButtonClickEwent rgs geyvents Lutzothdowed EwentHandler events Buttanlclicked EwentHandler Image button property Mormallmagel Image property Fushedimager Image property Focousedlmage Image property Actwelmagel Image property Idi String property Tagl Object property Focusablel bool setStatelString woid setButtonfocuslndesfint int woid OnFaint System lfindowe Forms PaintEwent rgs woid OnFaintBackground System lfindons Forms FaintEwent rgs woid On hio use D owni System Windows F orms wouze EventArgs void On iouseUpiSyste m Windows F orms blouse EwentArgsi woid OnClidiEventArgs void Unkeybouwnl Syste m Windows F orms KeyEwent rgsi woid OnkeyUpiSyste m Windows F orme KeyEvwentArgs woid Onc otF ocu EventArgs woid OnLostF ocus EventArgs void OnCurorM owe dC uror ove EventArgs woid OnButonclickedeButtonClickEwent rgs woid 2 A 4 T SR n op SR Le Le Le Le Le Le Le Le Le Abbildung 43 Klas
6. to NormalTimellorng String buttHandlel bject ButtonClickEvent rgs woid focusHandlen bject CursorkloweEwent rgs woid getSamplehesourges String Buttonkesourges buildFrogressbanint int int ProgressB atEx OnFaintFaintEwent rgss waid mm b System Mirga wes A Oma A Mukhdesesaoe Bos wes Syste m Windows F orms Button no System Windows F orms Button header Syste m Windows Forme Label description Syste m Wirindows F orms Label zelection Syste m Wrin dows Forms ComboBox pds ArrayList curentBosindex int currentltem Item wiyh essa ge B osii biy hd essa ge B oxlte m InitializeComponentbl woid Combobox Gelechedlnde ChangedCobiect System EventArgs woid button Citodoblech EventArgs woid OnFaintFaintEwent rgs woid Abbildung 17 Klassendiagramm TVZapPlugIn Package Im Konstruktor der Klasse MyPanel werden zun chst die Eigenschaften des Panels gesetzt Diese k nnten in der modifizierten Version der Anwendung direkt im MyXaml Dokument in der Beschreibung des Panels als Attribute bergeben werden Es folgt die Anbindung des Paint Eventszber dessen Aufruf das Panel gezeichnet wird Dabei wird zuerst gepr ft ob Items vom Typ VideoItem vorliegen Ist dies nicht der Fall so wird em Label mit entsprechendemyText erzeugt Wenn Items verf gbar sind so wird gepr ft ob es sich um ein Update de Panels handelt und lediglich das zugeh rige Informationstfenster aktualisiert Wird das Panel zum
7. 2005 C Sharp Wikipedia WWW Dokument Stand 27 06 2005 Internet http de wikipedia org wiki C Sharp Zugriff 28 06 2005 00 13 Uhr digi Lugmayr A Niiranen S Kalli S Digital Interactive TV and Metadata Future Broadcast Multimedia New York Springer Verlag 2004 ISBN 0 387 20843 7 dll Wikipedia Autor 2005 Klassenbibliothek Wikipedia WWW Dokument Stand 25 04 2005 Internet http de wikipedia org wiki Klassenbibliothek Zugriff 28 06 2005 12 26 Uhr doc MyXaml Wiki Autoren 2005 MyXaml Wiki Home NNN Dokument Stand 24 03 2005 Internet http www myxaml com wiki ow asp Home Zugriff 07 06 2005 00 25 Uhr dom1 Le H garet P Whitmer R Wood L 2005 W3C Document Object Model WWW Dokument Stand 19 01 2005 Internet http wwwaw8 org DOM Zugriff 31 05 2005 14 47 Uhr dom2 Le Hegaret P Wood L Robie J 2004 What is the Document Object Model WWW Dokument Stand 07 04 2004 Internet http www w3 org TR 2004 REC DOM Level 3 Core 20040407 introduction html Zugriff 31 05 2005 15 04 Uhr dtd Wikipedia Autor 2005 Dokumenttypdefinition Wikipedia WWW Dokument Stand 15 06 2005 Internet http de wikipedia org wiki Dokumenttypdefinition Zugriff 22 06 2005 16 35 Uhr dvb Wikipedia Autor 2005 Digital Video Broadcasting WWW Dokument Stand 30 04 2005 Internet http de wikipedia org wiki Digital_Video_Broadcasting Zugriff 24 05
8. DVB T und in Zukunft auch DVB H ausgestrahlt wird Mit Hilfe von speziellen Empfangsger ten sind Fernsehen oder Musik f r jedermann empfangbar vgl dvb Fernsehen auf mobilen Kleinstger ten wie PDA s ist daher bereits m glich jedoch ist DVB T als bertragungstechnologie aufgrund des hohen Energieverbrauchs f r diese kleinen Mobilcomputer ungeeignet vgl frisch S 2 da die Daten in einem konstanten Datenstrom engl Stream bertragen werden und demEmpf nger immer eingeschaltet bleiben muss Aus diesem Grund wird die ohnehin schon kurze Akkulaufzeit der kleinen Ger te weiter reduziert Ein anderer Grund der die Verwendung dieser Technologie f r mobilen Empfang unm glich macht ist die Problematik dass eine bertragung bei hohen Bewegungsgeschwindigkeiten des Empfangsger tes z B im Auto n cht funktioniert Um diese Probleme zu l sen wurde vom DVB Projekt die neue Technologie DVB H geschaffen Diese stellt einen bertragungsstandard speziell f r kleine mobile Endger te dar bei dem das Hauptaugenmerk auf einem m glichst geringen Energieverbrauch liegt Statt der kontinuierlichen bertragung der Daten wird bei DVB H ein anderes Verfahren angewandt das so genannte IP Datacast Die Daten werden dabei in kleinen IP Paketen in einzelnen Bursts ssto weise versendet Dadurch ist es m glich eine unbegrenzte Menge an Daten ech Siehe http www t systems mediabroadcast de coremedia generator www t systems
9. Entwicklung von Software f r NEI CF unterst tzen und die erstellte Anwendung demzufolge mcht auf einem Pocket PC lauff hig w re Fe obt allerdings zwei neuartige Implementierungen die es zum einen erm glichen die XAML Technologie bereits zu verwenden und zum anderen die Entwicklung f r NEI CF nterst tzen Diese sollen im Folgenden kurz vorgestellt werden Das Softwareprodukt Xamlon erm glicht die Beschreibung grafischer Benutzungs schnittstellen mittels XAML Markup Es unterst tzt die bisherigen Windows Forms 21 Siehe http www xamlon com Analyse Seite 34 Komponenten sowie die neuen Avalon Komponenten von Windows Longhorn und erm glicht die Ver ffentlichung der erstellten GUI als Flash Anwendung Der Schwerpunkt ist bei Xamlon auf die Verwendung von Vektorgrafiken auf dem PDA gesetzt Xamlon unterst tzt ausschlie lich die Entwicklung mit Visual Studio NEI 2003 Bei der Installation des Xamlon Paketes auf dem PC wird ein zus tzliches Plug In installiert mit dem GUT s zusammengeklickt werden k nnen oder in der XAML Ansicht das Markup direkt bearbeitet werden kann Die Software ist in drei Version f r die Entwicklung von Anwendungen f r Desktop PC s das Internet und PDA s verf gbar muss allerdings im1 Allgemeinen k uflich erworben werden Die NET CF Version st ausschlie lich als Beta Version f r registrierte Beta Tester erh ltlich Ein weiterer L sungsansatz ist MyXaml Diese Impleme
10. Focused Image Index int propertys Activen Image ylndex int isfocgusable bool id String linkedObject Object EranmtAms m_bmp ffscreen Bitmap Cursor Mowe Ewent Args ewent Curorhdowed Cuporhdoue Ewent andler events ButonGlicked But onGlickEwentHandler direction String index int ImageButton String Button Resources ylndex int ImageButtanlString ButtonResourges int int Image button LurssorlovreEwent rgs String int int property Mormallmagel Image property Directionl String property Pusbhedlmage Image property Alndest int property Focusedlm age Image property nde int property Acwelmagell Image property Id String property Tagl Object setStatelString void EventArgs OnF aint System Windowns F orms FaintEvwentArgs woid OnF aintBackgroundi System Windows F orms F aintEventArgs woid On hiouse D owni System Windows Forms house Ewent rgs woid i UnbiouselplSystem Windows F orms wlouse EventArgs void Und EventArgs void On keyD own System Windows Forms KeyEventArgs woid Upnkevllpt System Win dons F orms KewEwentArga void On cotf ocus Evwent rgs void OnLostF ocus EventArgs waid OnCursorkovediCursorW owe EventArgs void OnButtonGlicked ButtonGlickEwent rgs woid d du d Le Le Le Le Le Le Le Ge Le Le L Abbildung 19 Klassendiagramm ImageButton Package Die Komponente ImageButto
11. System Windows Forms gt 5 lt MxComponent Name btn postfix gt 6 lt Button def Name compBtn 7 Size 40 40 HI Location 100 60 9 Font Tahoma 9pt Bold 10 Text Cancel 11 BackColor White 12 ForeColor Green gt 13 lt MxComponent gt 14 lt MyXaml gt Abbildung 10 Beispiel f r eine MyXaml Komponente Grundlagen Seite 28 In der Beschreibung einer solchen Komponente muss zus tzlich ein MxComponent Element definiert werden Abb 10 Zeile 5 Anhand des Namens der Komponente Kann diese angesprochen eingebunden und im aufrufenden Dokument um zus tzliche Eigenschaften erweitert werden Eine Datei kann beliebig viele solcher Komponentenbeschreibungen enthalten In Verbindung mit folgendem C Code kann das Markup verwendet werden l using System Windows Forms 2 using MyXanml H 4 namespace myxamltest 5 public class LoadMyXamlFile 6l public LoadMyXamlFile 7 MyXaml Farser parser new Parser 8 Application Run Form parser LoadForm testfile myxaml MainForm this null d 10 11 static void Main f 12 LoadMyXamlFile loader new LoadMykamlFile 13 14 15 public void MainForm_Load object sender System EventArgs e Ip MessageBox Show Anwendung gestartet 17 l 18 19 Abbildung 11 Beispiel f r den zu den Abbildungen 9 und 10 geh rigen C Code Die Main Methode stellt den Einstiegspunkt der Anwendung dar und instantiiert die Klass
12. ausgelagert und die bisherige Funktionalit t durch bernahme des bestehenden Programmcodes beibehalten werden Demzufolge wurde zun chst das zugeh rige MyXaml Dokument mit allen ben tigten statischen Steuerelementen und den m Entwurf zugeordneten Stilen angelegt Die Eigenschaften wurden in ein Stylesheet Dokument ausgelagert und der auf diese Weise erzeugte Skin ber den Include Tag in das zuvor angelegte MyXaml Dokument eingebunden Das MyXaml Dokument muss als Inhalt in das Visual Studio Projekt integriert werden damit dieses bei der Weitergabe an den Emulator auf dem Ger t als Date vorliegt und bei laufender Anwendung dynamisch Elemente dar n eingef gt werden k nnen bevor das Formular und die Steuerelemente erzeugt und dem Benutzer pr sentiert werden Implementierung Seite 68 Das Stylesheet Dokument soll ebenfalls auf dem Ger t vorliegen damit dieses sp ter auch von anderen Komponenten verwendet werden kann Der Startbildschirm wurde zur Modifikation des ClientMainForms zwecks Zeitersparnis und Fehlervermeidung auskommentiert Die originalen Plug Ins wurden zur Kontrolle der automatischen Generierung der Tableiste weiterhin verwendet Im folgenden Schritt wurden die bisher dynamisch erzeugten Buttons der Tableiste zun chst in Form von MyXaml Markup in das Dokument geschrieben mut den zugeh rigen Stildefinitionen versehen und somit die Buttons vom Parser erzeugt Im Gegensatz zu den dynamisch generierte
13. das hei t erdgebundene Variante von DVB die in Europa und anderen Staaten als Standard f r die bertragung von digitalem Fernsehen per Antenne verwendet werden wird dvbt Generic Markup Begriff f r das Konzept der Auszeichnung von Inhalten nach semantischen anstatt nach visuellen Gesichtpunkten jen Grafische Benutzungsschnittstelle Derjenige Teil einer Software den der Benutzer unmittelbar vor sich auf dem Monitor bzw der Anzeige sieht gui Inline Programmcode der innerhalb eines XML basierten Dokumentes vorliegt Interaktionselement Bestandteile einer grafischen Benutzungsschnittstelle mittels derer ein Benutzer auf die Anwendung einwirken kann z B Druckschalter IP Datacast Broadcast Technologie zur kosteneffektiven und effizienten Verbreitung digitaler Inhalte an eine Vielzahl von Empfangsger ten vgl ipdata1 Klassenbibliothek Spezielle Form einer Programmbibliothek womit eine Sammlung selbst ndiger Programmkompo nenten in diesem Fall die Klassen gemeint ist die f r die Wiederverwendung vorgesehen sind dll Markup Bezeichnete urspr nglich die handschriftliichen Anmerkungen eines Layouters am Rand eines Dokuments die sp ter im Satz ber cksichtigt wurden Auf diese Weise wurden das Seitenformat bestimmt Seiteninhalte angeordnet sowie typografische Festlegungen getroffen Das Markup beschr nkte sich damals fast ausschlie lich auf visuelle Aspekte eines Textes Mit
14. deren Zugeh rigkeit zu bestimmten Formularen oder Panels kennt und somit selbstst ndig Stylesheets und Skins in Form von MyXaml Markup erzeugen kann Basierend auf den ermittelten Anforderungen an den modifizierten ESG Client die sich aus einer genauen Analyse der bestehenden Anwendung sowie einer Definition diverser Anwendunsgsf lle f r das zuk nftige System ableiten kann nachfolgend die Aufgabenstellung spezifiziert und ein konkretes Ziel definiert werden welches im Rahmen der vorliegenden Diplomarbeit erreicht werden soll 4 7 Zieldefinition Das Ziel dieser Diplomarbeit besteht darin die zuvor ausgew hlten Komponenten des prototypischen ESG Client in ihrer Implementierung soweit zu modifizieren dass eine Trennung von GUI und zugeh riger Applikationslogik vorliegt sowie eine Verwendung von Stylesheets m glich ist Als Resultat dieser Modifikation sollen die folgenden Komponenten entstehen Analyse Seite 55 Ein ESG Client Ein Startbildschirm Ein Plug In zur bersicht aller TV Services Ein separates Panel zur Darstellung der Detailinformationen zu den Services das ebenso f r die Plug Ins zur bersicht aller Audio und Service Dienste benutzt werden kann Ein Stylesheet das die Stildefinitionen f r alle genannten Komponenten beinhaltet Ein einfaches Werkzeug zu Test und Demonstrationszwecken der realisierten Skinningf higkeit nachfolgend als Skinning Feature bezeichnet Die einzelnen Komponenten s
15. e m glich ein Gro teil der m ESG Client verwendeten Methoden bernommen werden So steht beispielsweise das Laden der Plug Ins nicht direkt im Zusammenhang mit den Ver nderungen der UI E stellung und kann daher in der modifizierten Version vollst ndig bernommen werden Ee wird lediglich eine minimale Ver nderung beim Aktivieren bzw Deaktivieren der Tabs notwendig sein um die zuk nftig in Form von Pfadangaben bergebenen Bilder zudaden Aufw ndigere nderungen in der neuen Version des ESG Client sind notwendig beim Starten der Anwendung und beim Erzeugen der Plug In Panels So soll zun chst im Konstruktoraufruf des ClientMainForms ein Parser Objekt erzeugt werden Die Plug Ins werden mittels der gegenw rtig verwendeten Methode geladen Die zugeh rigen Buttons werden zuk nftig n Form von MyXaml Markup dynamisch n das Dokument eingef gt welches die Beschreibung des Formulares enth lt Dieses wiederum wird daraufhin vom Parser gelesen die ben tigten Klassen instantiiert und die Anwendung gestartet Gleiches gilt f r die Erzeugung des Startbildschirms Diesem wird weiterhin das ClientMainForm als Parameter bergeben um auf die Methoden zum Auslesen der verf gbaren Plug Ins zugreifen und das ClientMainForm aufrufen zu k nnen Das Formular selbst wird jedoch auch von einem Parser Objekt aus einer GU I Beschreibung in Form von MyXaml Markup erzeugt Die im MyXaml Dokument in Form von Attributen bergebenen Methoden zur
16. nderungsvorschl ge sollen in den folgenden Abschnitten konkretisiert und f r die Realisierung ausgearbeitet werden 5 1 1 Trennung von GUI und Applikationslogik Wie bereits in der Zieldefinition festgelegt _ wurde soll zur Umsetzung einer Trennung von GUI Definition und unterliegender Applikationslogik zus tzlich zu den bereits bestehenden Klassen eine Aufteilung der zu moditiz erenden Komponenten in verschiedene Dateien erfolgen Die Beschreibung der GUI Elemente wird dabei in MyXaml Dokumente ausgelagert Die vorhandene _Applikationslogik und die an die Interaktionselemente gebundene Eventbehandlung soll weitgehend erhalten bleiben Inwiefern eine solche Trennung in den im Rahmen der Analyse ausgew hlten Komponenten umgesetzt werden soll zeigt die nachfolgende Abbildung 21 Re Design Seite 57 ESGClient ClientMainForm GUI StartForm TVZapPlugIn InfoPanel EEN Pinfofenster MyMessageBox Abbildung 21 Entwurf zur Umsetzung einer GUI Logik Trennung GlientMainForm StartForm GUI TV Zapping T Die im Namensraum ESGClient enthaltenen Klassen ClientMainForm und StartForm werden jeweils in ihre GUI Beschreibung sowie den zugeh rigen C Programmcode zerlegt Es liegen daher weiterhin die zuvor bestehenden zwei Klassen sowie zwei zus tzliche MyXaml Dokumente vor ber die Schnittstelle IESGPlugIn wird das TVZapPlugIn vom ESG Client mittels der vorhandenen Funktionen geladen D
17. 2005 2 54 Uhr dvbc Wikipedia Autor 2005 DVB C Wikipedia WWW Dokument Stand 16 06 2005 Internet http de wikipedia org wiki DVB C Zugriff 22 06 2005 16 28 Uhr dvbs Wikipedia Autor 2005 DVB S Wikipedia WWW Dokument Stand 18 06 2005 Internet http de wikipedia org wiki DVB S Zugriff 22 06 2005 16 25 Uhr dvbt Wikipedia Autor 2005 DVB T Wikipedia WWW Dokument Stand 18 06 2005 Internet http de wikipedia org wiki DVB T Zugriff 22 06 2005 16 22 Uhr Anhang Seite 107 epg Wikipedia Autor 2005 Elektronische Programmzeitschrift WWW Dokument Stand 05 05 2005 Internet http de wikipedia org wiki Elektronische_Programmzeitschrift Zugriff 24 05 2005 11 37 Uhr etsi1 European Telecommunications Standards Institute 2004 ETSI EN 302 304 V1 11 Digital Video Broadcasting DVB Transmission System for Handheld Terminals DVB H PDF Dokument Stand November 2004 Internet http webapp etsi org exchangefolder en_302304v010101p pdf Zugriff 24 05 2005 10 57 Uhr etsi2 European Telecommunications Standards Institute 2003 ETSI EN 300 707 Vt2 1 Electronic Pro gramme Guide EPG Protocol for a TV Guide using electronic data transmission PDF Dokument Stand April 2003 Internet http webapp etsi org exchangefolder en_300707v010201p pdf Zugriff 24 05 2005 2 29 Uhr etsig3 European Telecommunications Standards Institute 2005 EISI TR 102 377 V1
18. Anschluss daran das konkrete Ziel dieser Diplomarbeit definiert werden Die Ergebnisse bilden die verbindliche Grundlage f r die anschlie ende Modifikation der Anwendung 4 1 Aufgabenstellung Wie bereits m Kapitel Hintergrund s ehe 2 1 erw hnt handelt es sich bei dem erstellten ESG Client um eine prototypische Entwicklung im Rahmen eines Studienprojektes bei der das Hauptaugenmerk vor allem auf der Erstellung eines Konzeptes und der Implementierung der grundlegenden Funktionalit t lag In der Entwicklung des Designs der grafischen Benutzungsschnittstelle hatte das Projektteam der FHTW freie Hand und sollte lediglich einen ersten Entwurf liefern Ein konkretes Design sollte daraufhin n Abstimmung mit der Marketingabteilung der TSI vom nachfolgenden Projektteam vorgelegt werden Da sich das Design bis zur angedachten Ver ffentlichung des ESG Client mit gro er Wahrscheinlichkeit noch mehrere Male ndern Wird ist eine weitere Vertiefung des angewandten MVC Konzeptes erforderlich um eine problemlose Anpassung an das jeweilige neue Design zu garantieren Besonders im Hinblick auf den Verkauf der ESG Client Implementierung an verschiedene Firmen muss das Design individuell anpassbar sein Im Rahmen dieser Arbeit soll es daher erm glicht werden das vorliegende Plug In Konzept zu adaptieren und auf die GUI anzuwenden um diese ebenso austauschbar zu machen Das Design der Benutzungsschnittstelle soll var erbar sein ohne die Funk
19. B Rollbalken vgl hein S 135 Bei der Erstellung grafischer Benutzungsschnittstellen werden Metaphern verwendet Eine Metapher ist die bertragung Von Konzepten und Handlungsweisen aus einem Bereich der gegenst ndlichen Welt auf Interaktionen am Rechner hein S 163 Anwendung findet die Kombination von Dialogen mit Fenstersystemen und Metaphern beispielsweise in Windows Betriebssystemen Der Benutzer blickt dabei auf eine Schreibtischoberfl che auf der wiederum Ordner und Dokumente repr sentiert durch P ktogramme abgelegt sind Der Grund f r die Verwendung grafischer Benutzungsschnittstellen in Anwendungen ist neben Zeitersparnis einem ansprechenderen Aussehen sowie einem besseren berblick ber alle verf gbaren Funktionen vor allem die einfache und schnelle Erlernbarkeit einer Anwendung Eine intuitive und angstfreie Bedienung einer Anwendung wird durch die Verwendung von ankl ckbaren selbsterkl renden Interaktionselementen und Metaphern gew hrleistet Der Benutzer kann sich durch die bertragung von Kenntnissen aus seinem allt glichen Umfeld leichter in einem neuen Programm zurecht finden ohne zuvor Hintergrundwissen erwerben zu m ssen wie z B eine Kommandosprache wie MS DOS Grundlagen Seite 19 Zus tzlich zu den zuvor beschriebenen Hilfsmitteln zur Vereinfachung der Mensch Computer Interaktion gibt es Gestaltungsgrunds tze mit deren Hilfe die Gestaltung der grafischen Benutzungsschnittstelle und
20. Elemente ersetzt und das Dokument von einem Parser Objekt mittels der Methode LoadFotm verarbeitet werden Wird ein Button gedr ckt so wird das ClientMainForm angezeigt Zur Aktivierung bzw Deaktivierung der Tabs sowie zur Anzeige der Plug Ins werden die urspr nglichen Methoden des bergebenen LoadESGClient Objektes aufgerufen Modifikation des IESGPlugIn Die einzig notwendige Ver nderung der Schnittstelle IESGPlugIn betraf wie bereits im Entwurf siehe 5 1 3 erw hnt die Methoden getTabIcon und getBiglIcon Es wurde jeweils der R ckgabetyp von einem Bitmap Array zu einem Array von Strings ge ndert so dass die zur Repr sentation der Plug Ins ben tigten Bilder m Form von Pfadangaben an den Client bergeben und von diesem am entsprechenden Ort abgerufen werden k nnen Die Klassenbibliothek ESGPluglIn dll wurde nach abgeschlossener Modifikation neu erstellt Dies zog eine Reihe von Fehlermeldungen im ESGClient Projekt nach sich da alle eingebundenen Plug Ins die Methoden mit dem falschen R ckgabetyp implementierten Es folgte daher die Anpassung des TVZapPluglns Modifikation des TV ZapPlugIns Zun chst wurden alle weiteren Plug Ins aus der Projektmappe entfernt damit das in den Anforderungen geforderte TVZapPlugIn umgesetzt werden konnte Um Fehlermeldungen beim Ladennder Plug Ins zu verhindern wurde in der Klasse LoadESGClient die Zeichenkette mit den einzubindenden Plug Ins entsprechend gek rzt Die Anpassung des Plug I
21. Es muss jedoch in der OnPaint Methode gepr ft werden ob alle Zust nde durch Bilder definiertwurden bzw fehlende Bilder durch andere ersetzt werden Diese Pr fung wird in der aktuellen Version im Konstruktor vorgenommen wenn ein ButtonResources Objekt bergeben wurde Im Hinblick auf den Entwurf der modifizierten Version der Anwendung sollen nachfolgend die grundlegenden notwendigen Ver nderungen zusammengefasst werden 4 4 3 Auswertung der Analyse der bestehenden Anwendung Die vorangegangene Analyse der einzelnen ausgew hlten Komponenten hat gezeigt dass eine Trennung zwischen GUI und Applikationslogik ansatzweise durch eine Trennung in verschiedene Methoden vorliegt Daher l sst sich die Beschreibung der GUI problemlos aus dem vorhandenen Programmcode entnehmen und durch Textauszeichnung in separaten Dateien ersetzen Ein Gro teil der Applikationslogik kann unver ndert beibehalten werden Die Funktionalit t soll nicht ver ndert werden lediglich die Herangehensweise Durch eine Verwendung von MyXaml Markup wird es voraussichtlich m glich sein ein gemeinsames Stylesheet f r alle Elemente zu definieren Sicher ist n jedem Fall dass jedem Element ein individueller Stil zugewiesen werden kann In den Entwurf des neuen Systems sollten folgende Punkte miteinbezogen werden Die Klassen ClientMainForm und StartForm sind sehr hnlich aufgebaut und unterliegen daher hnlichen Ver nderungen Es kann jeweils die Methode Initial
22. Eventbehandlung sollen direkt im Programmcode der Anwendung vorliegen damit nicht zus tzlich zu den Plug Ins noch weitere Klassenbibliotheken eingebunden werden m ssen Zum Einbinden eines Plug Ins nach einem Klick auf einen Button des Startbildschirms oder der Tableiste wird auch zuk nftig die Methode displayPlugIn aufgerufen jedoch wird das geforderte Panelim Plug In auf eine andere Art und Weise erzeugt Es soll zuk nftig ein weiteres Parser bjekt erzeugt werden dass die GUI Beschreibung des jeweiligen Panels liest und de Klassen instantiert Das resultierende Panel Objekt wiederum kann wie es in der urspr nglichen Version des ESG Client der Fall ist vom ClientMainForm gegen das vorhandene Platzhalter Panel ausgetauscht werden Beim Klick auf einen Button des Panels w rd das entsprechende Ereignis aus der Plug In Klassenbibliothek aufgerufen Das vom Plug In verwendete InfoPanel und die zugeh rige MessageBox werden auf dieselbe Art und Weise erzeugt Beim Klick auf einen Button des PInfofensters bzw der MessageBox werden die zugeh rigen Events aus der Assembly InfoPanel dll aufgerufen Re Design Seite 66 Die beschriebene Funktionsweise soll mittels der folgenden Abbildung veranschaulicht Client Formular Start Formular steuert erzeugt erzeugt werden Plug In DLL code behind liefert Eventkontext ruft Event auf Plug In Panel bindet ein ruft Event auf ruft Event auf liefert Eventkonte
23. Parser instantiiert werden k nnen Analyse Seite 54 4 6 3 Anforderungen hinsichtlich der Skinning Durchf hrung Das Aussehen der GUI soll so schnell und einfach wie m glich angepasst werden k nnen Daher wird der bestehende ESG Client soweit modifiziert dass die Verwendung von Stylesheets m glich ist Weiterhin soll ein einfaches Skinning Feature implementiert werden mit dessen Hilfe d ese F higkeit zur Durchf hrung des Skinnings getestet und demonstriert werden kann Das Erstellen der ben tigten Stylesheets und zugeh rigen Skins wird jedoch vorerst nur f r Benutzer laut Zielgruppen Definition in diesem Fall TSI Mitarbeiter ohne weiteres durchf hrbar sein die sich mit der Anwendung bereits besch ftigt haben Als Hilfestellung soll daher zus tzlich eine Skinning Anleitung verfasst werden m der die Vorgehensweise f r Benutzer erkl rt wird die unerfahren sind im Umgang mit der Anwendung und oder keinerlei Programmierkenntnisse besitzen Diese Kompliziertheit hinsichtlich des Skinnings ergibt sich aus der Tatsache dass die Stylesheets und Skins ebenfalls in Form von MyXaml Elementen definiert werden und m Rahmen der vorliegenden Diplomarbeit keine zus tzliche Anwendung entwickelt wird die eine Erzeugung von Stylesheets ber eine GUI erm glicht Daher st es notwendig dass der Benutzer geringf gige HTML oder XML Kenntnisse besitzt den Aufbau der Anwendung hinsichtlich der Anordnung der Steuerelemente sowie
24. ber DVB H versendet und ber mobile Ger te mit DVB H Receivern empfangen An einer Implementierung f r solche Empfangsmodule arbeiten bereits verschiedene Firmen zusammen Die mm Vergleich zum Desktop Computer geringe Prozessorleistung der kleinen mobilen Endger te erlaubt nur niedrige Kompressionsraten des V deomaterials Daher sollte diese optimal ausgenutzt und die ohnehin schon kurze Betriebsdauer nicht noch weiter verringertuwerden Somit kommen momentan keine schnelleren Prozessoren in Frage Aufgrund dieser Problematik werden u a im Heinrich Hertz Institut ein neuer Codec A 264 eine MPEG 4 Frweiterung und ein dazugeh riger Player entwickelt Dies erm glicht eine effiziente Codierung des V deomaterials sowie die trotz allem noch sehr rechenintensive Dekodierung mit den gegenw rtig verf gbaren PDA Prozessoren Bis zur Fertigstellung der erforderlichen Technologien wurden so auch im Rahmen des Projektes die Testdaten ber Hintergrund Seite 8 DVB T versendet und von Computern mit entsprechender Hard und Software empfangen Ziel der TSI ist es bis zur Fu ball Weltmeisterschaft 2006 DVB H zur bertragung von Spielsequenzen an eine Vielzahl von mobilen Empfangsger ten einzusetzen Im Rahmen eines Studienprojektes welches die TSI eemensam mt Studenten der FHTW Berlin durchgef hrt hat ist ein Prototyp eines ESG Client entstandenz Ziel dieses Projektes war es eine funktionierende Anwendung zu schaffen welche due em
25. beschrieben Implementierung Seite 67 6 Implementierung In diesem Kapitel soll die Umsetzung des im vorigen Kapitel auf Basis der ermittelten Anforderungen angefertigten Entwurfes beschrieben werden Dabei wd zun chst die Vorgehensweise bei der Implementierung erl utert Im Anschluss daran werden wesentlche aufgetretene Probleme geschildert und die resultierende Anwendung getestet 6 1 Vorgehensweise Die Umsetzung des ESG Client erfolgte Komponente f r Komponente Dabe wurden alle vorhandenen Einzelprojekte zu einer gemeinsamen Projektmappe ESGClient n Visual Studio NEI 2003 zusammengef gt Die Implementierung l sst sich dabei in die im Folgenden erl uterten zwei Phasen Umsetzung der Skinninf higkeit und Durchf hrbarkeit des Skinnings einteilen 6 1 1 Phase 1 Umsetzung der Skinningf higkeit Das Ziel der ersten Phase der Implementierung war es zun chst die bestehende Anwendung so zu modifizieren dass diese prinzipiell skinningf hig ist jedoch bei der Benutzung kein Unterschied in Darstellung und Funktionsweise erkennbar sein soll Begonnen wurde die Realisierung der Skinningf higkeit mit der Anpassung des ClientMainForm Modifikation des ClientMainForms Die Klasse wurde in der ver nderten Version mit dem Namen LoadESGClient versehen um die Funktionsweise als Einstiegspunkt der Anwendung kenntlich zu machen Bei der Umsetzung sollte m erstensschritt ausschlie lich die GUI Beschreibung des Formulares
26. daraus resultierend die zu verwendende Entwicklungsumgebung sowie auch die anzuwendenden Programmierkonzepte definiert Die entstehende Anwendung sollte sowohl auf Handheld Terminals mit Windows Mobile 2003 Second Edition SE for PockePE als auch auf herk mmlichen Windows 32 Betriebssystemen e insatzf hig sein Als Zielger te wurden Pocket PC Tablet PC und Desktop PC festgelegt Das Hauptaugenmerk f r die Wei terentwicklung des prototypischen ESG Client liegt jedoch auf der Plattform PocketPC insbesondere einem Pocket PC 2003 SE da DVB H speziell f r die Benutzungsauf kleinen mobilen Endger ten entwickelt wurde In der vorliegenden Arbeit ist unter dem Begriff Pocket PC 2003 SE grunds tzlich ein mobiler Kleinstcomputer zu verstehen auf dem das Betriebssystem Windows Mobile 2003 SE for Pocket PC installiert ist F r de Wahl dieses Betriebssystems sprechen va das f r eine optimale V deowiedergabe geeignete Querformat und die Unterst tzung f r Displays mit VGA Aufl sung Der ESG Client ist f r die Verwendung im Querformat programm ert Da der Prototyp f r die Verwendung auf Windows basierten Plattformen ausgerichtet ist muss die Entwicklungsumgebung Visual Studio NET 2003 zur Programmierung benutzt werden Mit Hilfe dieser Software ist es m glich Applikationen f r Betriebssysteme zu erstellen die d s NEI Framework bzw die reduzierte Variante das NEI Compact Framework implementieren siehe Kapitel 3 2 Daher kann
27. dem Konzept des generic markup richtete sich der Fokus auf die semantische Auszeichnung von Inhalten wie sie Anhang Seite 102 gerade bei SGML und XML Dokumenttypen blich ist Markierungen machen dabei eine Aussage ber die Art der markierten Stelle jen Metapher bertragung von Konzepten und Handlungsweisen aus einem Bereich der gegenst ndlichen Welt auf Interaktionen am Rechner hein S 163 Metasprache Sprache mit der eine andere Sprache erkl rt oder definiert wird mit der also die Regeln die Grammatik f r diese Sprache festgelegt werden jen MyXami Generisches Werkzeug zur Instantiierung von Klassen durch Markup zur Laufzeit vgl Imyxami8 Parser Programm das entscheidet ob eine Eingabe zur Sprache einer bestimmten Grammatik geh rt W hrend des Parsens erfolgt eine syntaktische berpr fung der Eingangsdaten Bei der berpr fung wird in der Regel aus den Daten ein Ableitungsbaum in Anlehnung an das Englische gelegentlich auch als Parse Baum bezeichnet aufgebaut um die Daten anschlie end weiterverarbeiten zu k nnen z B semantische Analyse Codegenerierung in einem Compiler oder Ausf hrung durch einen Interpreter pars Plug In Softwareprogramm das in ein anderes Softwareprodukt integriert wird jen hier Eine Klassenbibliothek in der mindestensseine Klasse die Schnittstelle IESGPlugIn implementiert und die ein Panel sowie die zugeh rige Funktionalit t an
28. deren Interaktionselementen erleichtertswerden soll Diese Normen wurden von der International Organization for Standardization 1SO festgelegt und beinhalten Vorgaben f r Schriftgr e Farbe Anzahlaund Anordnung von Elementen Ziel st dabei eine ergonomische Informationsdarstellung angepasst an die Eigenschaften der menschlichen Wahrnehmung Diese Regelungen betreffen alle genannten Ebenen einer Benutzungsschnittstelle und sollen bewirken dass die Informationen f r den Benutzer leichter erfassbar und verst ndlicher sind vgl hein 5 131 An dieser Stelle sollen die ISO Normen jedoch nicht genauer betrachtet werden da die Gestaltung einer Benutzungsschnittstelle nicht Thema der vorliegenden Arbeit ist Es soll lediglich eine existierende Benutzungsschnittstelle soweit ver ndert werden dass eine einfache Neugestaltung dieser m glich ist Die Gestaltung selbst wird jedoch von anderen Personen vorgenommen und liegt demzufolge au erhalb des Rahmens dieser Arbeit Es stellen jedoch nicht alle Benutzer die gleichen Anspr che an die Benutzungs schnittstelle einer Anwendung da jeder Mensch andere F higkeiten und Vorlieben besitzt Findet die Gestaltung der grafischen Benutzungsschnittstelle eines Programms Anklang bei einer Vielzahl von Benutzern so gibt es doch immer Ausnahmen Daher sollte dieser Bereich m glichst flexibel sein und an verschiedenesBenutzer individuell angepasst werden k nnen Ebenso wie NEI das Verwenden austausch
29. eines Plug Ins wird vom Client anhand der Methode getPlugInName ermittelt und mit der Liste der zu ladenden Plug Ins verglichen Die Methode getPlugInDescription liefert eine Beschreibung der Funktionalit t eines Plug Ins Soll sp ter ein Stylesheet verwendet werden muss dieses voraussichtlich mittels einer Methode deser Schnittstelle an die Plug Ins bergeben werden Ein Plug In welches die Schnittstelle IESGPlugIn implementiert ist das im Folgenden vorgestellte TVZapPlugln Analyse Seite 42 4 4 2 3 TVZapPlugin Wie an der zuvor abgebildeten Systemarchitektur siehe 4 4 1 Abbildung 12 zu erkennen ist sind alle drei Zapp ng Plug Ins identisch aufgebaut Sie unterscheiden sich lediglich im Aufruf einer Methode des DVB H AL da jeweils verschiedene Typen von Services angezeigt werden sollen Aus diesem Grund wird im Rahmen dieser Arbeit stellvertretend das TVZapPlugIn genauer betrachtet und modifiziert Die beiden anderen Zapping Plug Ins k nnen im Anschluss daran einfach und schnell basierend__ auf der Vorlage des TVZapPluglIns umgesetzt werden Das Plug In Panel besteht aus einer Liste welche de Anbieter aller verf gbaren Items anzeigt sowie einem weiteren Panel in dem Informationen zu den entsprechenden Items dargestellt werden Der folgende Screenshot gibt einen berblick ber die Steuerelemente die auf den einzelnen Panels angeordnet sind Typ Icon Bezahlstatus Icon Titel Ze Pocket PL 2003 Second Edition
30. erkl re ich Merrit Kr ger an Eides statt dass ich die vorliegende Diplomarbeit mit dem Thema Abstraktion von Benutzungsschnittstellen auf Basis der Extensible Markup Language XML selbstst ndig und ohne fremde Hilfe verfasst habe Ich habe keine anderen als die angegebenen Quellen und Hilfsmittel verwendet und die diesen Quellen w rtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht Die Arbeit wurde bisher n gleicher oder hnlicher Form keiner anderen Pr fungsbeh rde vorgelegt Berlin 04 Juli 2005 Merrit Kr ger
31. ersten Mal erzeugt so werden die f r die Zapping Funktionen ben tigten Steuerelemente erzeugt und zum Panel hinzugef gt Zur Darstellung der Liste werden dabei ImageButtons zur Navigation nach oben und unten erzeugt mit Eigenschaften und Analyse Seite 44 Eventhandlern versehen sowie zu einer ArrayList und zum Panel hinzugef gt Auf die Klasse TmageButton wird im folgenden Abschnitt genauer eingegangen Die vorhandenen V deoltems werden aus dem DVB H AL ausgelesen und in der Klasse MyItemList die entsprechenden Druckschalter generiert sowie mit Eventhandlern versehen und ebenfalls zum Panel hinzugef gt Abh ngig von der Situation K nnten bei der Neugestaltung des ESG Client dynamisch die ben tigten Steuerelemente in Form von MyXaml Elementen zum Dokument hinzugef gt werden Zur Abgrenzung der Anbieterliste vom Informationen lt Panel wird eine Linie an den rechten Rand der Liste gezeichnet Mit MyXaml kann dies nicht durchgef hrt werden daher muss speziell zum Zeichnen der Linie das Paint Event definiert werden Es folgt die Instantiierung der Klasse PInfofenster Da alle drei Zapping Plug Ins eine identische Implementierung verwenden wird in Erw gung gezogen dieses als separate Komponente mit eigenem Namespace umzusetzen In der Klasse MyPanel werden die Gr e und die Position des Pinfofensters festgelegt Diese sollten zuk nftig im zugeh rigen MyXaml Dokument oder im Stylesheet gesetzt werden An das PInfofenster werden d
32. im Programmcode vorzunehmen ist es ausschlie lich m glich die in dem fest angegebenen Ordner Program Files ESGClient abgelegten Bilder gegen namensgleiche Bilder auszutauschen Eine Angabe von Pfaden zu den zu verwendenden Bildern kann nur in den MyXaml Dokumenten der jeweiligen GUI Beschreibung bzw zum Teil im Programmcode erfolgen Eine Angabe beliebiger Bildpfade im Stylesheet ist nicht m glich da der MyXaml Parser dies bisher nicht unterst tzt und es in der K rze der Zeit nicht m glich war die notwendigen Modifikationen im Programmcode des Parsers vorzunehmen Da d e Konzentration auf der Umsetzung der geforderten Funktionalit t lag wurde keinerlei Fehlerbehandlung in der neugestalteten Version des ESG Client implementiert So ist dies u a zu erkennen wenn in der Textdatei kene oder falsche Namen f r die zu ladenden Stylesheets und oder Skins angegeben sind Ist dies der Fall startet die Anwendung nicht und es w rd eine Fehlermeldung von Windows CE ausgegeben die lediglich auf eine Exception hinweist jedoch den genauen Grund nicht Kennt Auf weitere bekannte Probleme wird im Benutzerhandbuch hingewiesen Bei genauerer Betrachtung der umgesetzten und fehlenden Funktionalit t l sst sich feststellen dass die Erwartungen an die resultierende modifizierte Anwendung im Gro en und Ganzen abgesehen von einigen Abstrichen erf llt wurden Der ESG Client ist weitestgehend benutzerdefiniert anpassbar n seiner Interf
33. microsoft com downloads details aspx familyid b789bc8d 4f25 4823 b6aa c5edf432d0c1 amp displaylang en Grundlagen Seite 23 Longhorn SDK Klassenbibliothek zur Anwendungsentwicklung WinFS Dateisystem zur Speicherung von Dateien und deren Metadaten in einer Datenbank Indigo Technologien zur Entwicklung verteilter Anwendungen Yukon Implementierung von SQL Server Avalon Teil des Longhorn SDK zur Entwicklung von Benutzungsschnittstellen XAML XMIL basierte Scriptsprache zur Beschreibung von Benutzungsschnitt stellen in Longhorn Anwendungen Die Entwicklung von Anwendungen beruht auf dem build once deploy n times application model long2 Dies bedeutet dass f r Entwickler die bisher zwingende Entscheidung ob eine Web Anwendung oder eine Windows Anwendung entstehen soll ab sofort n cht mehr n tig ist Die Vorteile beider Welten wurden vereint und es wird lediglich eine Anwendung entwickelt die mit unterschiedlichen Kompilieroptionen sowohl im Internet als auch lokal auf Desktop Computern PDA s etc lauff hig ist Jede Anwendung besteht dabei aus einzelnen Seiten und ist von einem Application Objekt bgeleitet das u a den Einstiegspunkt der Anwendung definiert diese steuert und Ereignisse aufruft vgl long3 Die Seiten enthalten die Beschreibung der BenutzungsschnittstelleimEorm von XAML Elementen und Attributen sowie prozeduralem Code innerhalb der Seite inline bzw einer Referenz auf den zugeh rigen Pr
34. nennen 37 4 4 2 1 ESG GENea Zee ala 38 44 22 1ESGPlUg Nee een 41 442 3 1 V ZaDPIUG IN fe EE 42 4 4 2 4 mMage BUllON WE dE 46 4 4 3 Auswertung der Analyse der bestehenden Amwendung nn 47 4 5 ANWENdUNdgSt lle see Bee O 49 4 6 Resultierende Anforderungen an die Amwencdung nn 52 4 6 1 Allgemeine Anfkdgfungen 222200022000000000000000nn0nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnnnn 52 4 6 2 Anforderungen hinsichtlich der Gkmmmgt hgket nennen nnnnnn een 53 4 6 3 Anforderungen hinsichtlich der Gkmmmg DurchtOohrung ee 54 2 7 Zieldelintion ee RL 54 e Re e EE 56 5 1 Systemaefiklur 022220004020000000nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 56 5 1 1 Trennung von GUI und Applkatonslooik 56 DA FRaassung des ImageButtons 2 2 222000000000000000n00nnnnnnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnennne 58 5 1 3 Anpassung der Plug Jn Gchntteielle nennen 60 5 1 4 Package Diagramm der modifizierten Anmwendung nennen een 61 5 125 Entwurf des Gkmnmg Features 62 9 2 Siwe cheats Und Skins eier 63 53 FUNKIONaltal ee Ee Dee 64 Son ee ad DEE 6 6 1 Vorgehens Waise auch EE d 6 6 1 1 Phase 1 Umsetzung der Gkinnmgt hakeit EE 67 6 1 2 Phase 2 Durchf hrbarkeit des Gknnmgs ENNER 73 6 1 3 ZusammenfasSs Ng WEE EN e i 75 6 2 Problembeschreibungen u 2 na ie RETTEN 77 6 9 Testergebnisse in ee nes EE 81 fe e E
35. r einige ausgew hlte Komponenten unter Verwendung der XML basierten Sprache MyXaml durch Auslagerung der GUI Definitionen zu realisieren und die M glichkeit der Durchf hrung eines einfachen Brandings mit Hilfe seines simplen Werkzeuges zu demonstrieren Die resultierende Anwendung sollte in jedem Fall auf der Plattform Pocket PC lauff hig sein Diese Anforderung der Funktionsf higkeit des neugestalteten ESG Client auf einem PDA stellte die eigentliche Problematik dar da es zwar bereits verschiedene L sungsans tze zur Trennung von Darstellungsebene und Applikationslogik gibt z B Mozilla s XUL und Microsofts XAML diese jedoch nicht f r d e Plattform Pocket PC zur Verf gung stehen Daher wurde m Rahmen der vorliegenden Diplomarbeit der Versuch unternommen die Modifikation des bestehenden ESG Client Prototypen unter Verwendung der neuartigen MyXaml Technologie umzusetzen MyXaml stellt eine generisches Werkzeug zur Instantiierung beliebiger Klassen durch Beschreibung der zu erzeugenden Interaktionselemente in Form von Textauszeichnung dar und bietet neben der M glichkeit der Anwendung auf einem Pocket PC zus tzlich die M glichkeit der Verwendung beliebiger Steuerelemente sowie die Definition von Stylesheets und Skins Die erzielten Ergebnisse sollen im Folgenden kurz zusammengefasst werden Der MyXaml Parser wurde entsprechend der ben tigten Funktionalit t modifiziert Dazu wurden fehlerhafte Implementierungen korrigiert sowi
36. sowie andere Angestellte der TSI bzw von der TSI beorderte externe Testpersonen mit grundlegenden bis keinen Programmierkenntnissen Die Akteure in den einzelnen Anwendungsfall Definitionen sollen daher verallgemeinernd als TSI Mitarbeiter bezeichnet werden Die wichtigsten Schritte zur erstmaligen Durchf hrung des Brandings des ESG Clients sind im nachfolgenden Anwendunsgsfall Diagramm dargestellt Das L schen eines Stylesheets oder Skins wird dabei nicht ber cksichtigt j Stylesheet hinzuf gen UC 01 Uses Skin modifizieren UC 03 USES T5I Mitarbeiter Stylesheet zuweisen UC 04 N USER skin zuweisen UC 05 Abbildung 20 Anwendungsfall Diagramm Branding Jeder Sch stellt einen Anwendungsfall engl use case dar Einzelne Schritte k nnen dabei voneinanderabh ngig sein Dies wird deutlich gemacht durch eine Use Beziehung dargestellt mittels eines Pfeiles mit der Beschriftung lt lt uses gt gt So ist es beispielsweise notwendig dass zun chst ein Stylesheet Dokument ausgew hlt werden muss welches mindestens einen Skin Analyse Seite 50 enth lt bevor ein Skin zugewiesen werden kann Der Anwendungsfall Skin zuweisen UC 05 lt lt verwendet gt gt den Anwendungsfall Stylesheet zuweisen UC 04 Die in Abbildung 20 dargestellten Anwendungsf lle werden in den nachfolgenden Tabellen detailliert beschrieben Tabelle 2 Anwendungsfall 1 Hinzuf ge
37. sysxml Grundlagen Seite 29 Werden Anwendungen wie die zuvor beschriebene mit der MyXaml Implementierung f r das NEI Compact Framework erstellt so sind diese unter Verwendung der entsprechenden Parser Vers on und anderen Kompilieroptionen auch auf Desktop Computern ohne nderungen lauff hig Die grafische Benutzungsschnittstelle kann einfach und schnell an die neue Bildschirmgr e angepasst werden vgl myxaml6 MyXaml stellt ein amp sAlternative zu XAML dar da es die Verwendung dieser Technologie bereits erm glicht und sogar eine NEI CF Implementierung bereitstellt Die Unterst tzung beliebiger Namespaces von Drittanbietern erm glicht die Instantiierung von Klassen aus dem MSAvalon Namespace des kommenden Windows Longhorn und macht MyXaml Anwendungen somit Kompatibel zu Microsoft s XAML vgl myxaml5 Auf Bas s der m den Grundlagen vorgestellten Technologien folgen im anschlie enden Kapitel eine genaue Analyse des prototypischen ESG Client sowie die daraus resultierende Z eldefinition f r die vorliegende Arbeit Analyse Seite 30 4 Analyse In diesem Kapitel w rd zun chst die Aufgabe beschrieben deren L sung Gegenstand der vorliegenden Arbeit sein soll Anhand einer Definition der Zielgruppe f r d e modifizierte Anwendung der Auswahl eines L sungsansatzes sowie einer Analyse der bestehenden Anwendung soll ermittelt werden welche Anforderungen an die neugestaltete Anwendung zu stellen sind und im
38. tzung unterschiedlicher Plattformen an Nachfolgend k nnen daher bereits folgende Kriterien zur Suche einer L sung aufgestellt werden Trennung von GUI und Applikationslogik Verwendung von Stylesheets Plattformunabh ngiskeit wobei die Unterst tzung der Plattform Pocket PC zwingend ist Weitere Kriterien lassen s ch aus dem Hintergrund des DVB H Projektes siehe 2 1 ableiten Da der ESG Client vollst ndig in C implementiert ist durch die Anwendung des Plug In Konzeptes die einzelnen Komponenten jedoch auch in anderen Programmiersprachen entwickelt sein k nnen soll der zur Modifikation verwendete L sungsansatz nicht an eine bestimmte Programmiersprache gebunden sein in jedem Fall aber C unterst tzen Damit zuk nftig das Branding von den als Zielgruppe festgelegten TSI Mitarbeitern mit grundlegenden bus keinen Programmierkenntnissen durchgef hrt werden kann Analyse Seite 33 soll die ausgew hlte L sung einfach erlernbar und leicht verst ndlich sein Um die Lauff higkeit der Anwendung auf diversen Plattformen zu erm glichen soll wenn m glich ein offener Standard gew hlt werden Diese Standards sind zumeist frei verwendbar und somit gut unterst tzt d sue einer gro en Entwicklergemeinde zur Verf gung stehen Es kann s ch ebenso um eine OpenSource L sung handeln da der bestehende ESG Clienf bereits OpenSource Komponenten verwendet Der einzige L sungsansatz der die genannten Kriterien erf
39. verwendeten und beim n chsten Start der Anwendung zu verwendenden Stylesheets und Skins werden wie bei der Implementierung beschrieben jeweils in eine Textdatei gespeichert wenn die Anwendung beendet wird Wurden zuvor mittels des Skinning Features Stylesheet und Skin neu gew hlt so werden diese und die zu dem Zeitpunkt verwendeten in der Textdate vermerkt Beim n chsten Start des ESG Client werden alle Werte ausgeleseng die MyXaml Dokumente nach den alten Namen durchsucht und gegen die neuen ersetzt sowie im Anschluss daran die neuen Namen als die aktuell verwendeten vermerkt Da in der Anwendung die neuen Namen zu fr hzeitig als die alten bzw aktuell verwendeten Namen vermerkt wurden konnten somit bei der Suche im MyXaml Dokument nach den alten Werten der vorigen Stylesheets und Skins deren Namen nicht gefunden und durch die neuen ersetzt werden da bereits nach den neuen Werten anstelle der alten gesucht wurde Daher wurden die Namen des zu verwendenden Stylesheets und Skins nicht ausgetauscht und weiterhin die vor dem Neustart verwendeten beibehalten Die Aktualisierung des zuletzt verwendeten Stylesheets und Skins mit den neuen Werten wurde daraufhin sp ter im Programmablauf vorgenommen und die neu zugewiesenen Werte vom ClientMainForm wie gew nscht bernommen siehe Abbildung 34 Implementierung Seite 85 Eb Pocket PC 2003 Second Edition Emulator Hilfe v N24 Auslandsnachrich 1 02 44 02 46 Genre News and Curre
40. von den einzelnen Plug Ins aufgerufen wird Die bergebenen Items werdem bereits jeweils auf ihren Typ hin berpr ft Somit w ren kaum nderungen an der Funktionalit t notwendig Es ist jedoch unn tig dass bei bergabe eines neuen Items der Fortschrittsbalken und die MessageBox gel scht und neu erstellt werden Eine Aktualisierung der angezeigten Werte sollte gen gen F r die Instantiierung durch den MyXaml Parser muss der ImageButton ver ndert werden Der leere Konstruktor muss angepasst sowie Getter und Setter f r die Fokussierbarkeit und den Fokus Index geschaffen werden Die parameterhaltigen Konstruktoren sowie de Klasse ButtonResources werden nicht mehr ben tigt Um das Branding des ESG Client im Anschluss an de Umsetzung der analys ierten notwendigen nderungen durchf hren zu k nnen soll nachfolgend die sp tere Vorgehens weise anhand einiger Anwendungsf lle definiert werden Analyse Seite 49 4 5 Anwendungsf lle Zur Durchf hrung des Brandings soll es dem jeweiligen Benutzer m glich se n _Stylesheet Dokumente und Skins zu erstellen zu modifizieren oder zu l schen sowie der Anwendung ein vorhandenes Stylesheet und einen darin enthaltenen Skin zuzuweisen Standardm ig muss bereits ein Stylesheet mit mindestens einem Skin existieren um die Anwendung benutzen zu k nnen Benutzer des modifizierten ESG Client sind basierend auf der vorangehenden Z elgruppen Definition Programmierer Screendesigner
41. zugewiesen werden Es folgen die Definitionen von Listen der zu ladenden Plug Ins die sich je nach unterliegender Plattform inhaltlich unterscheiden Mit Hilfe der Methode loadPlugIns Wird versucht diese Plug Ins zu laden Die Tableiste am rechten Rand des Formulares repr sentiert die erfolgreich geladenen Plug Ins in Form von Druckschaltern Diese werden abh ngig von der Plug In Anzahl dynamisch generiert Nach Fertigstellung des ClientMainForms wird der Startscreen erzeugt und beim Start der Anwendung m Vordergrund angezeigt Dem Konstruktor wird dabei das ClientMainForm O bjekt als Parameter bergeben Es werden ebenfalls Betriebssystem und Plattform berpr ftssowie mit Hilfe einer InitializeComponent Methode die Steuerelemente des Formulares definiert Eigenschaften des Formulares und der Steuerelemente gesetzt und Eventhandler angebunden Die Bildverwaltung wird auch im StartForm ber einen Ressourcen Manager geregelt ber das bergebene ClientMainForm Objekt kann der Startscreen auf dessen Methoden zugreifen und die geladenen Plug Ins auslesen In der Methode createButtons werden dynamisch die Druckschalter zur Repr sentation der Plug Ins erzeugt Aufgrund der ermittelten Gemeinsamkeiten in Aufbau und Funktionsweise k nnten f r den Startscreen dieselben nderungsvorschl ge wie f r das ClientMainForm gelten Beide Analyse Seite 40 verwenden dieselben Methoden zum Auslesen der verf gbaren Plug Ins sowie zur A
42. 0020400 000 B nennneennennnnee nenn 15 Abbildung 5 Dialoge mit Fenstersystemen 02220000000000000n0n nn nennen nenne Me anne nnennnenennnnennnen 17 Abbildung 6 Beispiel f r ein einfaches AM Dokument 21 Abbildung 7 Beispiel f r ein einfaches XAML Dokument vam 24 Abbildung 8 Beispiel f r die Verwendung von Styles in XAML vgl Tonga 24 Abbildung 9 Beispiel f r ein MyXaml Dokument 2222242000020 EE 26 Abbildung 10 Beispiel f r eine My Sam Komponente REENEN 27 Abbildung 11 Beispiel f r den zu den Abbildungen 9 und 10 geh rigen C5 Code 28 Abbildung 12 Systemarchitektur des bestehenden ESG Client Ee 37 Abbildung 13 Screenshots des bestehenden StartForms links und ClientMainForms rechts 38 Abbildung 14 Klassendiagramm EGGClent Package es EEN 40 Abbildung 15 Klassendiagramm EGGblugoln Rackage e 41 Abbildung 16 Screenshot des bestehenden TV Zapbiuglns nennen nennen nennen 42 Abbildung 17 Klassendiagramm IV Zoapblugoln Package nenn 43 Abbildung 18 Screenshot der MessageBox des Hilntotenstere 45 Abbildung 19 Klassendiagramm Imagebutton Hackage nenne nnennn nenne nnennnnnennnnenn 46 Abbildung 20 Anwendungsfall Diagramm Droandrmg nn nnnnnnnnnnnnennnnnn nn 49 Abbildung 21 Entwurf zur Umsetzung einer GU Look Trennung 57 Abbildung 22 Beispiel f r ein MyXaml Dokument zur Beschreibung der StartForm GU 58 Abbildung 23 Beispiel f r die MyXaml Beschreibung eine
43. 1 1 Digital Video Broadcasting DVB DVB H Implementation Guidelines PDF Dokument Stand Februar 2005 Internet http webapp etsi org exchangefolder tr_102377v010101p pdf Zugriff 28 06 2005 14 02 Uhr fcl Microsoft Corporation 2005 Klassenbibliothek WWW Dokument Stand 2005 Internet http msdn microsoft com library deu default asp url library DEU cpref html cpref _start asp Zugriff 28 06 2005 12 22 Uhr frisch Frischholz R 2004 Chancen und Grenzen vomDVB H PDF Dokument Stand 24 06 2004 Internet http www berlin de senwiarbfrau projektzukunft dvbt iws_dvbh_04 t systems pdf Zugriff 24 05 2005 10 21 Uhr gui Wikipedia Autor 2005 Grafisch Benutzeroberfl che Wikipedia WWW Dokument Stand 20 06 2005 Internet http de wikipedia org wiki Grafische_Benutzeroberfl C3 A4che Zugriff 22 06 2005 16 51 Uhr hand Gievers R Das Praxisbuch Pocket PC 2003 Second Edition Ort unbekannt Hand de 2004 ISBN 393803605 2 hein Heinecke A Mensch Computer Interaktion M nchen Wien Fachbuchverlag Leipzig im Carl Hanser Verlag 2004 ISBN 3 446 22591 9 ipdata1 IPDC Forum 2003 IPDC Forum About IP Datacasting FAQ WWW Dokument Stand 2003 Internet http www ipde forum org about fag html Zugriff 24 04 2005 11 39 Uhr Iipdata2 Broadcastpapers Pty Ltd 2004 BROADCASTPAPERS COM IP DATACAST TERMINALS DESCRIPTION OF IMPLEMENTATION PRINCIPLES WWW Dokumen
44. Abstraktion von Benutzungsschnittstellen auf Basis der Extensible Markup Language XML MyXaml zur Realisierung von Skinning am Beispiel eines ESG Client Prototypen Diplomarbeit zur Erlangung des akademischen Grades Diplom Informatikerin FH an der Fachhochschule f r Technik und Wirtschaft Berlin Fachbereich Wirtschaftswissenschaften H Studiengang Internationale Medieninformatik 1 Betreuer Prof Thomas Bremer 2 Betreuerin Prof Dr Debora Weber Wulff Eingereicht von Merrit Kr ger Matrikelnummer 76900502130 Berlin 04 Juli 2005 Inhaltsverzeichnis te EIN EIUNG EE EE 1 2 lite ne DEE E E WEE 5 2 1 DVB FERIOjeKt san ee Hei ZZ 5 2 2 Vorstellung des Prototypen NEEN 9 2 3 kechnische Vorgaben 2 2er ale 11 g Grundlage DEE dE u E 13 3 12 eieiei BEE E 13 32 POKO LP O nennen een 14 3 3 Benutzungsschnittetellen kee NNN REENEN EE 16 3 AUSZEICHALINGSSPIACHEN een Feen 19 IA X Meere ee E 21 342 EE are 22 34 3 My X am er een We ebene 25 A ANalVS Eee a ge ie WEE 30 e BE fue e ET e Le ENT fin EE 30 4 2 Definition der Zielgruppe 2u0022200200000 0 hen EREN 31 4 3 Auswahl eines L sungsansatzes u02 400uQBersnennennnnnnnnnnnnnnnnnnnnnennnnennnnnnnnnnnnnnennnnnnennnnnnnnnnnnn 31 4 4 Bestehender ESG Client Alliiitmmmumme Mb REENEN 36 44 13 Systemarchliekl l a lee 36 4 4 2 Analyse ausgew hlter komponenten nenn nnenn nennen nennen nnennnnnennnn
45. Die Eintr ge in der Textdatei k nnen auch ohne Verwendung des Skinning Features ge ndert werden bevor die Anwendung gestartet wird Zum Abschluss der eigentlichen Implementierungsphase wurde ein einfacher Skin erstellt um die Funktionalit t testen zu k nnen Der resultierende modifizierte weiterhin voll funktionsf hige Startbildschirm ist in der folgenden Abbildung ou sehen Da nicht die M glichkeit der Angabe benutzerdefinierter Bildpfade im Stylesheet besteht wurden zun chst die vorhandenen Bilder in ihren Gr en und Positionen ver ndert Der Hintergrund des Formulares wurde blau eingef rbt Ge Pocket PC 2003 Second Edition Emulator Hilfe Abbildung 29 Beispiel f r einen neuen Skin des Startbildschirms Nachfolgend soll Kurz dasErgebnis der Implementierungsphase zusammengefasst und anhand von UML Diagrammen veranschaulicht werden 6 1 3 Zusammenfassung Der Entwurf wurde abgesehen von minimalen Ab nderungen vollst ndig umgesetzt Wie im folgenden Package Diagramm zu sehen beschr nken sich diese nderungen in der Klassenstruktur lediglich auf den aussagekr ftigeren Namen der ehemaligen Klasse ClientMainForm siehe 1 sowie die zus tzlich umgesetzten Zapping Plug Ins f r Audio Dienste und sonstige Services siehe 2 Implementierung Seite 76 ESGClient lt Package gt gt TT LoadEssciient 8 StartForm ImageButton ESGPlugin lt lt Package gt gt lt lt Package gt gt
46. Klassendiagramm des modifizierten EGGblugoln Packages 96 Abbildung 41 Klassendiagramm des modifizierten TVZapPlugIn Packages 4222020002 dss 97 Abbildung 42 Klassendiagramm des Ioiobanel Hackages EEN 97 Abbildung 43 Klassendiagramm des modifizierten ImageButton Packages Aauunesarclduereenenes 98 Anhang Seite 105 F Tabellenverzeichnis Tabelle 1 Pocket PC bersicht vgl wince1 und hwincee h EE 14 Tabelle 2 Anwendungsfall 1 Hinzuf gen eines neuen Stylesheet Dokumentes r 4 00 50 Tabelle 3 Anwendungsfall 2 Hinzuf gen eines neuen Gkms AER EENNN nannannnenannnnn 50 Tabelle 4 Anwendungsfall 3 Modifizieren eines Skins u2220002220000200000 0000 nn nnennne nennen 51 Tabelle 5 Anwendungsfall 4 Zuweisen eines Stylesheet Dokumentes d Bwusssennesennnnennennennnn 51 Tabelle 6 Anwendungsfall 5 Zuweisen eines Gkms EE 52 Anhang Seite 106 G Literaturverzeichnis coombs Coombs J Renear A DeRose S 1987 MARKUP SYSTEMS AND THE FUTURE OF SCHOLARLY TEXT PROCESSING PDF Dokument Stand November 1987 Internet http portal acm org citation cfm id 32209 amp coll ACM amp dI ACM amp CFID 45074700 amp CFTO KEN 89599422 Zugriff 30 05 2005 19 39 Uhr csharp Drayton P Albahari B Neward T C In A Nutshell 2nd Edition Sebastopol O Reilly 2003 ISBN 0 596 00526 1 csharp2 Wikipedia Autor
47. M autor dtd gt lt autor xmlns http www merritkroeger de gt lt nachname gt Kr ger lt nachname gt lt vorname gt Merrit lt vorname gt lt wohnort gt Berlin lt wohnort gt lt geschlecht gt weiblich lt geschlecht gt lt alter gt 23 lt alter gt lt beruf gt Studentin lt beruf gt lt autor gt i O VO OO zl On O VS w bi eA Abbildung 6 Beispiel f r ein einfaches AM Dokument Das XML Dokument in Abbildung 6 ist wohlgeformt da seine Syntax die vorgegebenen Regeln befolgt Dies bedeutet dass u a vgl xml S 19 e die zugrunde liegende XML Version angegeben wird siehe Zeile 1 e jedes Element immer ein Start und ein End Tag besitzt Attribute siehe Zeile 1 n cht mehrfach vorkommen und deren Werte in doppelten Anf hrungszeichen stehen alle Tags korrekt hierarchisch ohne berschneidungen verschachtelt sind Folgt das Dokument zus tzlich einer Document Type Definition DTD in Zeile 2 wird eine externe DTD eingebunden welche die Definition der Elemente und Attribute sowie deren Beziehung zueinander vorgibt so ist dieses Dokument g ltig vgl xml S 9 Entsprechend dem Konzept des Generic Markup werden in XML Dokumenten keine Ausgabe formatierungen festgelegt Die Darstellung der XML Dokumente wird entweder den Anwendungen berlassen die dese verarbeiten oder explizit in einem Stylesheet definiert Damit alle Elemente in einem XML Dokument eindeutig sind bietet die XML Spezifikation die M
48. Markup Sprache MyXaml Die Instantiierung und Initialisierung der Steuerelemente sowie die Anbindung der entsprechenden Ereignisse werden vom MyXaml Parser vorgenommen Anpassbarkeit aller GUI Elemente zum Teil optional Jedem Element der grafischen Benutzungsschnittstelle wird genau ein Stil zugeordnet Durch Modifikation der darin definierten Stilattribute soll es m glich sein das Aussehen des betreffenden Elementes hinsichtlich Farben Texten Bildern Schriften und Gr en sowie dessen Position auf dem Bildschirm anzupassen Die TSI stellt in diesem Zusammenhang die Anforderung dass das Aussehen des ESG Clhient schnellstm glich an verschiedene Anbieter anpassbar sein soll Als besonders wichtig wird dabei die Austauschbarkeit von Farben und Bildern angesehen Gr en Positionen und sonstige Eigenschaften der Elemente k nnen zun chst erhalten bleiben Die Anpassbarkeit von Gr e und Position der GUI Elemente ist daher im Rahmen dieser Arbeiboptional Entsprechend der Hardware Spezifikation eines Pocket PC 2003 SE sollten Bilder als Bitmaps mit einer Farbtiefe von maximal 16 Bit vorliegen da Windows CE zum gegenw rtigen Zeitpunkt lediglich Icons mm Bitmap Format und keine 32 Bit Farbtiefe unterst tzt Die Aufl sung der Bilder sollte 72 dp betragen Kompatibilit t der Steuerelemente mit MyXaml essentiell Das Interaktionselement ImageButton soll unter Verwendung von Textauszeichnung beschrieben und durch den MyXaml
49. Seite 45 Anzeige sollten weiterhin von der updateInfo Methode vorgenommen werden Bei den angezeigten Buttons zum Kaufen Informieren oder Starten eines Dienstes handeltes sich um ImageButtons die mittels eines Konstruktors mit Parameterliste erzeugt werden Diese Problematik w rd m Abschnitt 4 4 2 4 d skutiert Wenn der Druckschalter zum Kaufen eines Services eingeblendet wird und der Benutzer diesen dr ckt wird in der Methode showPurchaseDetail eine MessageBox erzeugt siehe Abbildung 18 p Pocket PC 2003 Second Edition Emulator Hilfe MessageBox Titel Kaufoptionen Wochen Abo 6 50 Euro 5 80 Euro Not in a Bundle Beschreibung Click Purchase for Details Buttons Abbildung 18 Screenshot der MessageBox des PiInfofensters Es handelt sich um eine Instanz der Klasse MyMessageBox die ein Formular mit Gr e und Aussehen einer MessageBox erstellt Die Eigenschaften dieses Formulares werden ebenfalls in der Methode showPurchaseDetail nitialisiert sollten jedoch in der modifizierten Version des ESG Client An einem Stylesheet festgelegt werden Das Formular mit allen Steuerelementen sollte n seinem separaten MyXaml Dokument beschrieben werden Momentan wird die GUlin der Methode InitializeComponent erzeugt In der Methode ComboBox_SelectedIndexChanged werden de m glichen Kaufoptionen eines Items die als Eintr ge einer ComboBox angezeigt werden sowie de zugeh rigen ausf hrlichen Info
50. T ee Feaase 86 8 lee E e E EE WER DE 91 ANHANG BEE ee 94 A SUlZUWEISUNGEN ZWS 2 ensure re a 94 B Klassendiagramme des resultierenden ESG Client Gup l 3 96 C Abk rzungeverzechns kennen Me A EEN 99 F IERE 100 E Abbildungsverzeichnise nase a ee 103 F Tabellenverzeichnis u0s0422044000080n0nn en nnnnnnnn en nne nenne nnennnnennnnennnnnnnnnnnnnnennnnnnnnnnnnnnnnnnnnennnnnnn 105 G Literaturverzeichnis 2 2222000220000202000R EE E 106 K CR E EE ee ee eek 111 2 Danksagung ae Ne eines 112 J Egenst ndoketserkl rumg NEES ENN 113 Einleitung Seite 1 1 Einleitung In der Softwareentwicklung wurde sich bereits seit vielen Jahren ausgiebig mit der Problematik der Trennung der einzelnen Bestandteile von Softwareprodukten auseinandergesetzt Es wird noch heute darauf hin gearbeitet verschiedener T tigkeiten logisch voneinander abzugrenzen um u a die M glichkeit einer verteiltemmEntwicklung durch Designer und Programmierer zu schaffen Anwendung findet diese Idee bereits im MVC Design Konzept bei dessen Gebrauch eine Applikation mp ein zugrunde liegendes Datenmodell Model eine Ans chtsebene View und eine Kontrollebene Controller zerlegt wird Ein konkreter Bedarf an einer Trennung von Darstellung und zugeh riger Applikationslogik besteht bei der Implementierung eines Electronic Service Guide Client ESG Client f r das digitale mobile Fernsehen DVB H Digital Vi
51. Tab HEIGHT byte 20 contentFanel Systemn Windows Forms Panel binExit OpenNETCFWindone Forms ButtonEx pluginList ArrayList ge picTitleBar System Wfindons Forms PictureBox clien Ee pictureBox1 Swstem Windows Eoms Picture Box client ClientMainF orm tabList ArrayList nem ArrayLish pictureBox1 System Windone Forms PictureBox os OperatingSystern ee TAB_HEISHT byte 30 pt Platformlib oe OperatingSywsterm pt Flatformib Cltenthdatnt ormi init woid StarformleClienthdainF om Leo adPlualnsg Sin af ArrayList Disposelboal woid create TabBanAraylist woid nit void Disposetbool woid Greatebuttons waid InitializeComponenti woid Initializelomponent woid btnExit_Elickobject System Ewent rgs woid binExit_Clicfobject System Evwent rgs woid displayPlugInklESSPlugin woid z bin Cltcbtiobiech Syste m Ewent rgs void binT ab Cliidgobiec System EventArgs woid inactivwate Tabs woid activate Tablint waid Matin woid ClienthlainForm_Loadflobject System EventArgs woid Formi_Gotfocuslobject Ewent rgs woid Abbildung 14 Klassendiagramm ESGcCblient Package Die Klassenvariablen sind in rot dargestellt ffentliche Methoden und Variablen sind mit 66 einem private mit einem versehen Gesch tzten Methoden und Variablen ist eine Raute A vorangestellt Der Einstiegspunkt der Anwendung ist unterstrichen Analyse Seite 41 Die vom Clien
52. Typ object da die Klasse LoadESGClient jedoch direkt von der Klasse System Windows Forms Form erbt kann das erzeugte Objekt ohne weitere Pr fung zum Typ Formular gecastet werden und beim Starten der Anwendung angezeigt werden Modifikation des StartForms Im Anschluss an die Modifikation des ClientMainForms erfolgte die Anpassung des StartForms dessen Instantiierung zu diesem Zweck wieder in das ClientMainForm integriert Implementierung Seite 69 wurde Die zun chst begonnene berlegung die GUI Beschreibung des StartForms ebenfalls vom Parser des ClientMainForms einlesen zu lassen wurde wieder verworfen da zum einen der Startbildschirm ebenso wie die Plug Ins auch relativ leicht austauschbar sem sollte und dies zum anderen weitere nderungen mit sich gebracht h tte da keine M glichkeit bestand dem StartForm bei dessen Instantiierung das LoadESGClient Objekt ae Parameter zu bergeben Ein Versuch der bergabe mittels einer Set Methode in der Star amp Form Klasse um diese eventuell als code behind Instanz verwenden zu k nnen beendete die Anwendung noch w hrend des Startens auf dem Emulator aufgrund von vermeintlich zu geringem Arbeitsspeicher Daher sind Aufbau Aufruf und Funktionsweise unver ndert geblieben Die Skinningf higkeit des StartForms wurde auf die gleiche Weise realisiert wie zuvor f r das ClientMainForm beschrieben Es musste ebenso ein MyXaml Dokument angelegt Platzhalter Text gegen dynamisch erzeugte Button
53. Zu diesem Zweck ist es notwendig mit Hilfe dieses Werkzeuges ein Stylesheet ausw hlen zu k nnen sowie zu ermitteln welche Skins dar n definiert sind und einen dieser Skins der Anwendung zuzuweisen Dazu gen gt m Rahmen dieser Arbeit ein einfaches Formular auf dem die zur Verf gung stehenden Stylesheets und zugeh rigen Skins aufgelistet sind F r den professionellen Einsatz zur Durchf hrung des Brandings f r eine Vielzahl von Firmen kann auf Grundlage dieses einfachen Werkzeuges eine separate Anwendung mit einem wesentlich gr eren Funktionsumfang entwickelt werden Abbildung 25 zeigt den Entwurf f r das in dieser Arbeit zu erstellende Skinning Feature Auswahl des Stylesheet Dokumentes einfache Liste oder Klappliste Auswahl eines Skins aus dem zuvor gew hlten Stylesheet einfache Liste oder Klappliste Auswahl best tigen Abbrechen Abbildung 25 Entwurf eines einfachen Skinning Features Re Design Seite 63 Da das Formular lediglich zu Test bzw Demonstrationszwecken dienen soll wird es als verstecktes Feature in den modifizierten ESG Client integriert Ge ffnet werden kann dieses ber einen unsichtbaren Button Der Einfachheit halber sollen das gew hlte Stylesheet und der darin enthaltene Skin vermerkt und erst beim n chsten Start der Anwendung benutzt werden Wie der Aufbau eines Stylesheets genau aussieht wird im nachfolgenden Abschnitt festgelegt 5 2 Stylesheets und Skins Die folgende Abbil
54. acegestaltung und ein einfaches Skinning kann problemlos durchgef hrt werden Als problematisch zu betrachten ist jedoch die resultierende Performanz Das Starten der Anwendung sowie jeder Wechsel des angezeigten Plug Ins ben tigen ca eme halbe Minute Als Testsystem dente in diesem Fall ein Acer TravelMate 800 mut dem Betriebssystem Windows XP Professional einem 1 3 GHz Intel Centrino Prozessor und 317 MB Arbeitsspeicher Getestet wurde die Anwendung im Pocket PC 2003 SE Emulator Da es sich beim ESG Client um eine Anwendung handelt die auf dem Pocket PC unterwegs in Bus und Bahn sowie in kurzen Pausen benutzt werden soll um u a schnell an bestimmte Informationen zu gelangen ist es f r Endkunden unzumutbar eine halbe Minute zu warten bis sich das Programm ge ffnet hat auch wenn alle Aktualisierungen der Anzeige Ergebnisse Seite 89 daraufhin zum Teil sogar schneller als zuvor erfolgen Die entwickelte L sung bietet s ch daher zwar f r das Branding durch die TSI an und erf llt somit die Aufgabenstellung ist jedoch im Hinblick auf eine allt gliche Verwendung durch Endbenutzer absolut ungeeignet Der Grund f r die angef hrte Problematik kann sowohl die zur Modifikation verwendete Technologie MyXaml als auch das unterliegende Plug In Konzept sein Ebenso kommen eine ung nstig umgesetzte Implementierung und der u U ohnehin bereits langsame Pocket PC Emulator als Gr nde f r die schlechte Performanz in Frage Da es sich b
55. ach dem Start Tag des Formulares eingebunden werden und muss nicht innerhalb des Cont ro1ls Elementes aufgef hrt sein Fehlende Hinweise zur Deklaration vomMethoden Weiterhin wurde an keiner Stelle der Dokumentation der Hinweis gegeben dass alle Methoden die beim Eintretem bestimmter Ereignisse aufgerufen werden ffentlich sein m ssen Diese Erkenntnis wurde anhand zahlreicher Tests w hrend der Implemen tierungsphase gewonnen Die in diesem Kapitel erl uterten Probleme f hrten dazu dass aufgrund von Zeitmangel einige der geforderten Funktionalit ten nicht optimal bzw gar nicht implementiert werden konnten Auch das Testen der realisierten Funktionen konnte daher nur in geringem Umfang durchgef hrt werden Die resultierenden Testergebnisse werden im nachfolgenden Abschnitt diskutiert 26 Siehe http msdn microsoft com library deu default asp url liprary DEU csref html vcrefTheDelegateType asp Implementierung Seite 81 6 3 Testergebnisse Neben den kontinuierlich durchgef hrten Tests w hrend der Implementierungsphasenwurde zus tzlich ein Test mit einer au enstehenden Testperson vorgenommen Ziel dieses Versuches war es zu ermitteln inwieweit die grafische Benutzungsschnittstelle der modifizierten Anwendung in ihrer Gestaltung benutzerdefiniert anpassbar ist und ob das Zieberreicht wurde dass das Branding des ESG Client von einer Person mit grundlegenden Programmer kenntnissen in diesem Fall einem Programmier
56. aml Dokument zu speichern und dieses lediglich von einem Parser Objekt verarbeiten zu lassen Ebenso gut ist es m glich dass die Anwendung auf einem richtigen Pocket PC wesentlich schneller abl uft und keinerlei nderungen notwendig sind Bereits im zugrunde liegenden DVB H Projekt bestand w hrend der Implementierungsphase aufgrund von parallelen Tests mit dem Emulator der Verdacht dass die Anwendung zu langsam und daher unbrauchbar w re Beim Test auf einem richtigen Pocket PC erwies sich dieser Verdacht als falsch Daher m sste ein Pocket PC beschafft und die modifizierte Anwendung zun chst einmal darauf getestet werden Ergebnisse Seite 90 Die notwendigen Tests als auch die Implementierung einer Fehlerbehandlung konnten aufgrund der unzureichenden Dokumentation und der Unvollst ndigkeit des MyXaml Parsers nicht im Rahmen dieser Arbeit durchgef hrt werden Die erforderliche paralleleErweiterung der Parser Funktionalit t wirkte zum Teil behindernd im Vorankommen mut der eigenen Implementierung war jedoch andererseits sehr von Vorteil da einige Funktionalit ten u U nicht w e geplant h tten umgesetzt werden k nnen ohne diese Erweiterungsm glichkeit Daher ist die Entscheidung f r die verwendete OpenSource TechnologieMyXaml positiv zu bewerten Abschlie end l sst sich jedoch sagen dass mit der gegenw rtig verf gbaren MyXamiCF Version sowie der Beibehaltung und aktuellen Umsetzung des Plug In Konzeptes zwar ein die Anfo
57. angelegt d h jeder Benutzer kann basierend auf seinen eigenen Erfahrungen im Umgang mit der MyXaml Technolosie Eintr ge hinzuf gen bzw vorhandene Eintr ge bearbeiten Die aufgef hrten Beispiele sind daher sehr einfach und auf eine geringe Anzahl begrenzt Es g bt Ungereimtheiten z B inwiefern Attr butwerte n einfachen oder doppelten Anf hrungszeichen angegeben werden m ssen Weiterhin ist beim Durcharbeiten der Dokumentation unklar welche Hinweise f r welche MyXaml Versionen g ltig sind W hrend der Implementierungstests mit der Version f r NEI CF konnten einige im Tutorial beschriebenen Codebeispiele nicht umgesetzt werden Daher schienen alle aufgef hrten Beispiele sowie die Dokumentation und das Tutorial f r die Desktop Version optimiert zu sein welche das volle NET Framework benutzt Unvollst ndigkeit der MyXamlCF Version Eine Webseite im Internet gab Aufschluss dar ber dass es sich bei MyXamlICF um eine Adaption des urspr nglich f r das volle NEI Framework entwickelten MyXaml Paketes durch einen anderen Autor handelte und erl uterte einige Unterschiede in der Programmierung Weiterhin wurden einige fehlende Funktionen genannt sowie der Hinweis gegeben dass Teile der adapt erten Version noch immer weit von einer vollst ndigen Funktionsf higkeit entfernt s nd Zus tzlich wurde ein Beispiel bereitgestellt welches speziell zur Ausf hrung auf einem Pocket PC entwickelt wurde Diese exemplarische Implementi
58. ard ISO 8879 der mit seinem Dokumenttyp HTML zur Auszeichnung von Webseiten den Weg in das Internet fand vgl jen HTML befolgt das Konzept des Generic Markup jedoch nur zum Teil da neben der Beschreibung der Bedeutung eines Textes zB als berschrift auch die Darstellungsweise beschrieben wird z B fett unterstrichen oder farbig HTML bietet zudem lediglich eine begrenzte Anzahl an fest vorgegebenen Tags die zur Darstellung von Texten im Internet in Form von Webseiten gut geeignet jedoch T r die Anwendung in anderen Bereichen nicht ausreichend sind Der eigentliche V orteiloder Flexibilit t der beschreibenden Auszeichnungssprachen ist aufgrund der Komplexit t von SGML und der begrenzten M glichkeiten von HTML nicht gegeben Um sSGMbstlexibler im Bereich der Informationstechnologie einsetzen zu k nnen wurde die Metasprache XML geschaffen vgl jen 13 Begriff f r das Konzept der Auszeichnung von Inhalten nach semantischen anstatt nach visuellen Gesichtpunkten jen Grundlagen Seite 21 3 4 1 XML XML st eine Teilmenge von SGML und somit kompakter strenger und daher einfacher zu verwenden Trotz seiner Strenge ist es flexibler einsetzbar da im Gegensatz zu HTML keine vorgeschriebenen Tags existieren sondern diese entsprechend der Bedeutung der Elementinhalte beliebig definiert werden k nnen Ein einfaches XMEL Dokument ist folgenderma en aufgebaut lt xml version 1 0 7 gt lt DOCTYPE autor SYSTE
59. as aktuell darzustellende Videoltem sowie die Navigationsbuttons der Liste bergeben da die Steuerung vollst ndig vom PInfofenster geregelt wird Dieses Vorgehen sollte beibehalten werden Die Definition der GUI erfolgt fast ausschlie lich in der Methode InitializeComponent Auf diese Kann daher verzichtet werden und die Beschreibung der dort definierten Steuerelemente und des Panels im MyXaml Dokument stattfinden sowie die Eigenschaften in einem Stylesheet definiert werden Die Anzeige des PInfofensters wird in der Methode updateInfo4Ttem item ausgef hrt Dort werden die Bilder f r den Medientyp und Bezahlstatus des aktuell bergebenen Items den Steuerelementen zugewiesen Die Bilder sollten auch n diesem Fall wieder keine Ressourcen sein sondern durch Angabe eines Pfades aus dem entsprechenden Ordner geladen werden Die Zuweisung der neuen Bilder k nnte weiterhin n der updateInfo Methode stattfinden damit das MyXaml Dokument nicht bei jeder Aktualisierung neu eingelesen werden muss Weiterhin wird bei jedem Aufruf dieser Methode der Fortschrittsbalken gel scht und neu sgezeichnet Es w re ausreichend lediglich den Wert f r de Gr e des Balkens neu zu berechnen Die Beschreibung des Fortschrittsbalkens k nnte daher ebenfalls im MyXaml Dokumenverfolgen Abh ngig vom gegenw rtig ausgew hlten Item werden ebenso die Texte aller Labels ge ndert sowie der Kaufen Button ein oder ausgeblendet Diese nderungen der Analyse
60. b5 f2a2 47d7 a41d 825fd68ebb6c displaylang en 10 Sieh http www1 us dell com content products productdetails aspx axim x50V c us amp cs 19 amp l en amp s dhs tabto Grundlagen Seite 13 3 Grundlagen Die aus dem DVB H Projekt hervorgehenden technischen Grundlagen dieser Arbeit werden in den folgenden Abschnitten genauer betrachtet sowie zus tzliche zunWeiterentwicklung des ESG Client ben tigte Technologien vorgestellt 3 1 Begriffserkl rung In diesem Kapitel sollen zun chst die in der Arbeit verwendete Terminologie erkl rt und Abgrenzungen zu verwandten Begriffen geschaffen werden Die Begriffe Skinning Branding und Theme sind in der Informationstechnologie im Rahmen der Softwareentwicklung insbesondere auf dem Gebiet Design h ufig anzutreffen In dieser Arbeit ist das Verst ndnis dieser Worte von Bedeutung da die Grundlage zur Neugestaltung der Benutzungsschnittstelle eines Programms geschaffen werden soll Skinning Unter dem Begriff Skinning ist in der vorliegenden Diplomarbeit die Modifikation der grafischen Benutzungsschnittstelle eines Programms zu verstehen Das bedeutet dass der f r den Benutzer sichtbare Teil der Anwendung ein neues Aussehen erh lt Das jeweilige Aussehen wird dabei auch als ein Skin engl f r Haut bezeichnet F r ein skinningf higes Programm k nnen beliebig viele solcher Skins definiert werden In einem Skin werden dabei u a die Farben in denen bestimmte Elemente angezeigt wer
61. barer Komponenten erm glicht sollte auch die grafische Benutzungsschnittstelle eines Programms austauschbar sein Problematisch ist dies jedoch wenn die Definition dieser Ansichtsebene vollst ndig im Programmcode integriert ist da bereits kleine nderungen ap der Darstellung gro e nderungen im Programmcode erfordern k nnen Aus diesem Grund m ssen verschiedene Ans tze gefunden werden wie die Definition der grafischen Benutzungsschnittstelle eines Programms ausgelagert werden kann so dass der Programmcode von nderungen der Darstellung unber hrt bleibt Einige L sungsans tze werden m den folgenden Abschnitten vorgestellt 3 4 Auszeichnungssprachen Der Begriff Markup engl f r Textauszeichnung hat seinen Ursprung n der Druckindustrie und bezeichnet handschriftliche Anweisungen eines Layouters die das Seitenformat die Anordnung der Inhalte sowie die Typographie der im Dokument enthaltenen Texte festlegen 12 Gremium zur Schaffung weltweit einheitlicher Standards so genannten ISO Normen Siehe http www iso org iso en lSOOnline frontpage Grundlagen Seite 20 vgl jen Heute werden mit Hilfe so genannter Markup Languages engl f r Auszeichnungssprachen m Bereich der Informationstechnologie Daten und oder deren Darstellungsweise beschrieben Es lassen sich dabei mehrere Arten von Auszeichnungen unterscheiden z B Procedural Markup und Presentational Markup vgl coombs 5 935 Die vorliegende Diplomarbeit b
62. ber die bertragenen 6 Unter dem Begriff Benutzer sind in der vorliegenden Arbeit sowohl m nnliche als auch weibliche Personen zu verstehen Ein Benutzer steht stellvertretend f r einen beliebigen Menschen bzw eine beliebige Person 7 Siehe http webapp etsi org exchangefolder en_300468Vv0 1060 1p pdf Hintergrund Seite 7 Services aus dem ESG aus und stellt diese bersichtlich dar so dass der Benutzer einen berblick ber das verf gbare Angebot an Services bekommt Wird ein bestimmter Service ausgew hlt erh lt der Receiver eine IP Adresse unter der die jeweiligen IP Pakete zu diesem Service empfangen werden k nnen Die IP Pakete werden entpackt und der gew hlte Dienst ber eine externe Applikation z B einen Mediaplayer oder Browser gestartet vgl ipdata2 Der Aufbau eines DVB H Systems wird in Abbildung 1 veranschaulicht Ausf hrliche Informationen und Erl uterungen zum genauen Aufbau und der Funktionsweise geben etsil und ets 3 Contentanbieter mit eigener System RRRRRRRRRRRRRRRRRRRRRRRRRRRRRSRRRRRRRRRRRERRRRRRSRRRRRRSRRRE technik z B BMCO Audio Video Be ee ContentA Si A WELES e ee mi A D In Dale H P kal ka l i L En Lei gg S 7 1 i Aggregation Abbildung 1 Aufbau des DVB H Systems frisch S 14 Im Rahmen weltweiter Feldtests wurde von der TSI in Berlin ein DVB T Kanal f r den Praxistest des DVB H Standards freigegeben Daten werden bei diesem Feldtest
63. d Edition EsGContentPanelStyle mem Statusbalken progressBarExStyle Listen Navigations Buttons imgBtnUp DownsStyle Zeitinformationen lAirTimeStyle L Genre Anbieter Buttons _ UGenreztvlel btnExProviderStyle L Kurzbeschreibung Altersempfehlung TextStyle lAdviseStyle gt Info Panel infoPanelStyle Kosteninformationen Buttons zum Kaufen Informieren Starten IPaymentStyle imgBtnBuy lInfo StartStyle Abbildung 37 Zuweisung von Stilen an die GUI Elemente des TVZapPlugins und InfoPanels ep Pocket PC 2003 Second Edition Emulator Hilfe MessageBox purchaseBoxStyle Titel IHeaderBoxStyle Kaufoptionen ae cbSelectionStyle Not in a Bundle Beschreibung IDescriptionStyle For betal S j E Buttons geen btnYes NoStyle Abbildung 38 Zuweisung von Stilen an die GUI Elemente der MessageBox des InfoPanels Anhang Seite 96 B Klassendiagramme des resultierenden ESG Client zu 6 1 3 cd ESGLliernt System Mingo ks Foms Fom LoadESGClient mysamlfile string program filesi currentSkinFile string program filesi parser Mytaml F arer bin Tab Button Ex picTitleBar FictureBox binExit Button E contentFanel Panel pict HTWLogo Button Ex statScreen Gtartt om plugInList ArrayList tabList ArrayList TAB_WIETH byte 40 TAB_HEISHT byte 20 newStylesheet string oldStylesheet string tempStylesheet string n
64. den Bildern enthalten die aus den betreffenden Plug Ins ausgelesen wurden Somit muss beispielsweise die Methode getBigIcon statt wie bisher Bitmap getBiglIcon folgenderma en definiert sein string getBigIcon Die Methode getSmallIcon ist zwar in der urspr nglichen Version der Schnittstelle implementiert wurde jedoch nicht vom ESG Client verwendet und kann demzufolge in der neuen Version aus der Schnittstelle entfernt werden 5 1 4 Package Diagramm der modifizierten Anwendung Anhand der in den vorhergehenden Abschnitten ausgearbeiteten Modifikationen l sst sich die Systemarchitektur der neu gestalteten Anwendung in Form des folgenden Package Diagramms veranschaulichen ESGClient lt Package gt gt lt lt Import gt TT ClientMainForm TT StartForm lt lt import gt gt ESGPlugin vam DotHet 4 lt lt Package gt gt lt Package gt gt del less lt lt Package gt gt ESGPIugIn H Break TT BitmapModel cam E DataBinding odel 9 Supportinitialize TT ObijectModel TT MxBinding A MyxamlAutolnitialize Attribute E Objectinto H Parser BS ImageButton TVZapPlugin E PropertyModelBase ns Extensions lt lt Package gt gt ar lt lt Package gt gt PE EENE E A PropertySetException lt lt Package gt gt H StringHelpers TT ButtonclickEvent rgs TT MyPanel H Trace TT DatarowModel TT CursorMoveEvent rgs H TVZapping TT TypeDecoder TT DataSourceTypeConverter TT ImageButton TT MxDatacolum
65. den aufrufenden ESG Client bergibt Pocket PC Bezeichnet sowohl ein Computer Betriebssystem als auch eine Reihe von pers nlichen digitalen Assistenten PDA s die mit dem Betriebssystem Pocket PC betrieben werden ppc Skin Sammlung von Bildern Farben und anderen Einstellungen die die Darstellung der Steuerelemente und demzufolge das Aussehen der grafischen Benutzungsschnittstelle festlegen vgl skin Steuerelement siehe Interaktionselement Stylesheet hier Dokument das Skin Definitionen enth lt Tag In Auszeichnungssprachen engl mark up languages wie SGML XML oder HTML bezeichnet das Wort Tag die in Kleiner und Gr erzeichen eingeschlossenen K rzel die beispielsweise in HTML dazu dienen Textelemente zu formatieren und damit deren Darstellung in Webseiten zu beeinflussen oder aber wie in XML verwendet werden Daten zu klassifizieren und strukturieren Dabei kommen so genannte ffnende und schlie ende Tags zum Einsatz Letztere sind durch einen f hrenden Schr gstrich gekennzeichnet tag Anhang Seite 103 E Abbildungsverzeichnis Abbildung 1 Aufbau des DVB H Systems nesch S 14 002222000022240002000000 000 nennen nn 7 Abbildung 2 OnAir Darstellung des EGOG COent Prototypen REENEN 8 Abbildung 3 Zusammenspiel der einzelnen Komponenten des ESG Client Be uuneenennees 10 Abbildung 4 Aufbau des NET Frameworks vasters S 8 u000222040
66. den sollen oder auch Gr en und Positionen f r bestimmte Elementenfestgelegt Im Allgemeinen kann in den Optionen des Programms der zu verwendende Skin ausgew hlt und somit das Aussehen der Benutzungsschnittstelle nach Belieben ver ndert werden Besteht diese M glichkeit so ist es zumeist f r den Benutzer ebenso m glich eigene Skins zu erstellen Im Rahmen dieser Arbeit werden Skins innerhalb von Stylesheet Dokumenten kurz Stylesheets abgelegt Diese XML Dokumente k nnen beliebig viele Skins enthalten Es k nnen ebenso mehrere Stylesheets erzeugt werden due wiederum verschiedene Skins enthalten Einer Anwendung muss in diesem Fall jeweils ein Stylesheet und ein darin definierter Skin zugewiesen werden Theme Wird be der Gestaltung der einzelnen Skins ein bestimmtes Motiv verwendet z B eine Jahreszeit eine Sportart oder ein Kinofilm welches sich in mehreren Elementen wiederfinden l sst so werden die erstellten Skins auch als Themes Themen bezeichnet Grundlagen Seite 14 Branding Branding steht m allgemeinen Sprachgebrauch f r das Versehen eines Produktes mit einer Marke durch die es unverwechselbar wird Im Rahmen dieser Arbeit ist damit eme bom von Skinning gemeint allerdings mit dem Unterschied dass nicht der Benutzer das Aussehen der GUI ver ndert sondern eine Anwendung an verschiedene Firmen mit unterschiedlichem Aussehen verkauft wird Dabei wird der Skin an das Corporate Design wa Logos und Farben d
67. deo Broadcasting Handheld welches in naher Zukunft per Broadcast an mobile Empfangsger te z B Personal Digital Assistants PDA s bertragen wird Der ESG Client stellt neben einer Art Programmzeitschrift auch den einzigen Zugang zu den Diensten dieses digitalen mobilen Fernsehens dar Ein Prototyp einer solchen Anwendung wurde im Wintersemester 2004 05 an der Fachhochschule f r Technik und Wirtschaft FHTW in Berlin im Rahmen einer Projektarbeit von Studenten der Internationalen Medieninformatik in Zusammenarbeit mit der T Systems International GmbH Mecha AS Broadcast TSI erstellt Dieses Projekt wird im gegenw rtig laufenden Sommersemester 2005 weitergef hrt und soll voraussichtlich im September 2005 auf der Internationalen Funkausstellung in Berlin pr sentiert werden Das Design des prototypischen ESG Client ist ein erster Entwurf und kann sich bis zu dessen Ver ffentlichung noch mehrere Male ndern Zudem ist es von der TSI geplant die Anwendung an andere Firmen z B Netzbetreiber oder Anbieter digitaler Inhalte zu verkaufen Aus diesem Grund muss das Design der grafischen Benutzungsschnittstelle auf das Corporate Design CD d h Logos Farben Schriften etc der jeweiligen Firma abgestimmt werden k nnen ohne die unterliegende Funktionsweise des ESG Client zu beeinflussen und den Programmieraufwand dabei m glichst gering zu halten Denkbar w re ebenso eine benutzerdefinierte Gestaltung der Darstellungsebene durch den Endku
68. der ESG Client einmal entwickelt opd f r die Verwendung auf verschiedenen Zielplattformen ver ffentlicht werden Die bestehende Anwendung ist vollst ndig in CH einer speziell f r das NEI Framework geschaffenen Programmiersprache implementiert vgl csharp S 3 Zum Testen der Hintergrund Seite 12 Anwendung w hrend der Implementierungsphase wird ein Pocket PC Emulator verwendet Die dazu n tige Software die Emulator Images for Pocket PC 2003 SE l sst sich problemlos in die Entwicklungsumgebung integrieren Der Emulator verh lt sich wie ein richtiger Pocket PC und erm glicht Funktionstests der Anwendung direkt aus der Entwicklungsumgebung heraus ohne das physische Vorhandensein des Zielger tes Das umst ndliche und zeitaufw ndige Kopieren des Codes sowie d e Anschaffung eines teuren Endger tes s nd daher zur Implementierung nicht notwendig Im Rahmen des Projektes wurde die englische Sprache als Bedienungssprache festgelegt Daher werden zum Testen der Implementierung die englischen Emulator Images ben tigt Aus diesem Grund soll der WWW PPC 2003 SE Landscape SDK Emulator verwendet werden Querformat englische Sprache Die Dokumentation des Programmcodes erfolgte w hrend des Projektes zum gr tem Teil auf Deutsch und wird demzufolge n deutscher Sprache fortgef hrt Aufgrund der hohen Anforderungen welche die DVB H Technologie an das mobile Endger t stellt konnte ausschlie lich das beste und schnellste Ger
69. dung zeigt den Entwurf eines Stylesheets n welchem der n Abbildung 22 siehe 5 1 1 verwendete Skin definiert wird l lt xml version 1 0 encoding utf 8 gt 2 lt MyXaml xml lang en US 3 xmlns def Definition 4 xmlns System Windows Forms gt S 6 lt MxComponent Name Skin gt 7 lt Style def Name StartForm tyle gt 8 lt StyleProperties gt d lt PropertyStyle ClientSize 320 240 WindowState Maximized gt 10 lt StyleProperties gt 11 lt Style gt 12 lt Style def Name TitleBarStyle gt 13 lt StyleProperties gt 14 lt PropertyStyle Location 0 0 Size 280 20 gt 151 lt StyleProperties gt 16 lt Style gt 17 lt Style def Name ExitStyle gt 18 lt StyleProperties gt 19 lt PropertyStyle Location 280 0 Size 40 30 gt 20 lt StyleProperties gt 21 lt Style gt 22 lt MxComponent gt 23 24 lt MyXaml gt Abbildung 26 Entwurf eines MyXaml Stylesheet Dokumentes mit einem Skin Wie zu erkennen ist ein Stylesheet auf hnliche Art und Weise wie ein in den Grundlagen beschriebenes typisches MyXaml Dokument aufgebaut siehe 3 4 3 In Abbildung 22 wurde per Includedasimobigen Beispiel definierte MxComponent Element Skin eingebunden Zeile 10 Ein MXComponent kann wie zu erkennen abgesehen von Steuerelementen ebenso gut ausschlie lich Stildefinitionen enthalten Die Verwendung von MxComponent Elementen erm glicht aus diesem Grund die Auslagerun
70. e LoadMyXamlFile Abb 11 Zeile 12 Im Konstruktor der Klasse w rd ein neues Parser Objekt Zeile 7 erzeugt und die Anwendung gestartet Zeile 8 bergeben werden dazu das MyXaml Dokument siehe Abb 9 der Name des Formulares das Zielobjekt sowie das Parent Objekt des Formulares Zur Laufzeit werden de Klassen zu den Tags im MyXaml Dokument instantiiert Eigenschaften nitialisiert und die Eventbehandlung angebunden Dies geschieht mit Hilfe der Methode LoadForm Zur Instantiierung der Klassen wird Reflektion verwendet Dies bedeutet dass Kein unterliegendes Objektmodell der Klassen erforderlich ist sondern zur Laufzeit Inform tionen aus den zu instantiierenden Klassen ber verf gbare Eigenschaften und Events eingeholt werden und jene basierend auf den ermittelten Informationen initialisiert bzw angebunden werden k nnen vgl myxaml3 Die auf diese Weise erzeugten Objekte werden als Knoten eines Objektbaumes im Speicher abgebildet In Abbildung H wd das Load Ereignis f r das Formular definiert Abb 9 Zeile 5 Die Anwendung liefert die entsprechende Methode Abb 11 Zeile 15 Beim Start wird f r jedes Steuerelement das Load Event aufgerufen sofern es definiert ist vgl myxaml7 Im obigen Beispiel wird dem Benutzer eine kurze Mitteilung gezeigt Abb 11 Zeile 16 20 MyXaml verwendet den System Xml Namespace des NET Frameworks Dieser baut u a auf den Standards XML 1 0 von 1998 sowie DOM Level 1 und 2 Core auf vgl
71. e Dialogart legt anhand der zur Interaktion ben tigten Eingabeger te fest welche Art von Benutzungsschnittstelle vorliegt So werden beispielsweise kommandozeilenbasierte und men gesteuerte Benutzungsschnittstellen unterschieden Vorherrschend sind heute grafische Benutzungsschnittstellen wie sie in Windows oder Macintosh Betriebssystemen vorzufinden sind Diese verwenden Dialoge mit Fenstersystemen vgl hein S 154 Ein Beispiel daf r gibt Abbildung 5 1 5 2 6 3 B 7 Find MSN Notes Pictures 4 Messenger e 8 Pocket Excel Pocket MSN Pocket Terminal Word Services _ H Abbildung 5 Dialoge mit Fenstersystemen Fensterelemente 1 Titelbalken mit Anwendungsmen Knopf 2 Men balken 3 Arbeitsbereich 4 selektiertes Objekt bzw Piktogramm 5 Schlie en Knopf 6 abgeblendeter Vollbild Knopf 7 Minimieren Knopf 8 Rollbalken 9 Rahmen Fenster sind abgegrenzte rechteckige Bereiche des Bildschirms die zur Darstellung und Manipulation von Objekten einer Anwendung benutzt werden hein S 160 Abbildung 5 zeigt zwei unterschiedliche Auspr gungen von Fenstersystemen In einem Anwendungsfenster des Betriebssystems Windows XP l uft die Anwendung Pocket PC Emulator in der wiederum ein Fenster des Betriebssystems Windows Mobile 2003 SE ge ffnet ist Wird das Grundlagen Seite 18 Anwendunsgsfenster geschlossen so wird gleichzeitig die darin ausgef hrte Anwendun
72. e der beiden Gruppen wurde der prototypische ESG Client verteilt entwickelt Um eine klare Trennung der Aufgaben zu gew hrleisten wurde das MVC Design Konzept angewendet Das Team der TSI arbeitete zu dem Zeitpunkt bereits an dem unterliegenden Datenmodell Die Projektgruppe der FHTW erarbeitete daraufhin em Konzept zur Erstellung der grafischen Benutzungs schnittstelle und deren Funktionsweise Das Datenmodell der TSI wurde an die ben tigten Funktionen angepasst sowie in Zusammenarbeit beider Gruppen eine Kommunikationsschicht entwickelt ber welche die grafische Benutzungsschnittstelle auf die unterliegenden Daten zugreifen kann um diese darzustellen Der im Rahmen des Projektes entstandene Prototyp eines ESG Client l sst sich daher mm drei Bereiche unterteilen siehe Abbildung 3 die grafische Benutzungsschnittstelle mit Ereignisbehandlung View Controller die Zwischenschicht DVB H AL Controller Model das Datenmodell Model Bei dem durch TSI bereitgestellten Datenmodell handelt es sich um Objekte die aus den mittels DVB H bertragenen Daten generiert wurden Diese werden durch die Ansichtsebene visualisiert ber den Controller kann der Benutzer auf den ESG Client einwirken und sowohl die Daten als auch deren Darstellung ver ndern vgl kauf S 1 Hintergrund Seite 10 ESG Client aktualisiert Ansichtsebene l dt des R ckgabe einer Methodenaufruf Objektliste DVB H AL GUI FHTW DVB H AL Zusamm
73. e w e C zum Programmieren der Applikationslogik Zus tzlich zum Programmcode der Anwendung kann Code inline oder code behind vorliegen Neben dem Namensraum System Windows Forms des NEI Frameworks unterst tzt MyXaml m Gegensatz zu XAML die Verwendung von Komponenten von Drittanbietern zu denen auch selbst erstellte Steuerelemente z hlen Stylesheets sind ebenso im Funktionsumfang von MyXamlkenthalten vgl myxaml4 Jeder Tag in einem MyXaml Dokument repr sentiert immer eine Klasse im angegebenen Namensraum vgl myxaml5 Es k nnemnallerdings ausschlie lich Klassen instantiiert werden die ber einen parameterlosen Konstruktor verf gen Die Eigenschaften werden ber Attribute gesetzt und m ssen dazu in der entsprechenden Klasse durch ffentliche Methoden so genannte Setter definiert sein Ein weiterer Vorteil gegen ber XAML ist der nclude Tag mit dessen Hilfe es m glich ist mehrfach ben tigte Komponenten einmalig zu beschreiben und beliebig oft wieder zu verwenden Der Aufbau eines Dokumentes wird nachfolgend erl utert 1 lt xml version 1 0 encoding utf 8 gt 2 lt MyXaml xml lang en US 3 xmlns def Definition 4 xmlns System Windows Forms gt gt lt Form def Name MainForm Load MainForm Load gt 6l lt Style def Name btnlStyle gt F lt S5StyleProperties gt B lt PropertyStyle BackColor Red ForeColor Blue gt 9 lt StyleProperties gt 10 lt Style gt EL lt Contro
74. e zus tzliche Funktionen hinzugef gt Das m allen Zapping Plug Ins identisch implementierte Informationsfenster mit der zugeh rigen MessageBox wurde als separate Komponente m Namensraum InfoPanel ausgelagert Die Komponente ImageButton wurde modifiziert und somit die notwendige Zusammenfassung Seite 92 Kompatibilit t mit der MyXaml Technologie erreicht so dass ein ImageButton in der resultierenden Version des ESG Client mittels Textauszeichnung beschrieben werden konnte e Es konnte eine weitgehende Skinningf higkeit des ESG Chent selbst des Startbildschirms der Zapping Plug Ins f r TV Audio und Services sowie f r das ausgelagerte InfoPanel inklusive der MessageBox realisiert werden Die Angabe benutzerdefinierter Bilder innerhalb von Stildefinitionen konnte aufgrund der fehlenden Unterst tzung durch den Parser nicht w e gew nscht realisiert werden Eine einfache Austauschm sglichkeit der verwendeten Bildenbesteht jedoch e Zur Umsetzung der Skinningf higkeit wurden die jeweiligen GUI Definitionen in separate MyXaml Dokumente ausgelagerw und der C Programmcode darauf abgestimmt e Allen verwendeten Interaktionselementen wurden individuelle Stile zugewiesen und diese in Form von MyXaml Markup definiert zu Skins zusammengefasst und in Stylesheet Dokumenten abgelegt e Ein einfaches Skinning Feature wurde implementiert und mit dessen Hilfe die erzielte Skinningf higkeit der neugestalteten Anwendung ge
75. edoch speziell auf NET CF ausgerichtet st wird d e Modifikation des ESG Client im Rahmen dieser Arbeit voraussichtlich nur f r die Plattform Pocket PC umgesetzt werden k nnen siehe Kapitel 2 3 Die erstellte GUI sollte jedoch problemlos auch unter Verwendung Analyse Seite 35 der Desktop Version benutzbar und lediglich eine Anpassung der Gr en und Positionen der beschriebenen Elemente notwendig sein MyXaml ist im Gegensatz zu Xamlon an keine Entwicklungsumgebung gebunden Mit MyXaml k nnen einzelne Komponenten in verschiedenen unterliegenden Programmiersprachen entwickelt und als Assemblies ver ffentlicht werden Es ist im Gegensatz zu Xamlon keine Umwandlung in eine Flash Anwendung notwendig um ein lauff higes Programm f r PDA s zu erstellen MyXaml ist im Gegensatz zu Xamlon eine OpenSource Implementierung und kann daher kostenlos verwendet und nach Belieben weiterentwickelt werden sofern zus tzliche Funktionen zur Neugestaltung des ES Client notwendig sind Drittanbieterkomponenten werden unterst tzt Die mm ESG Client verwendeten OpenNETCF und selbst erstellten Steuerelemente k nnen daher weiterhin auch durch Beschreibung in Form von Markup problemlos benutzt werden Mit Erscheinen von Windows Longhorn sollte es daher m glich sein den modifizierten ESG Client mit geringstem Programmieraufwand in eine richtige XAMIL Applikation umzuwandeln Lauff hig w re die unter Verwendung von M
76. efasst sich mit beschreibenden Auszeichnungs sprachen engl Descriptive Markup Languages Diese basieren auf dem Konzept des Generic Markup und werden dazu verwendet Dokumente zu strukturieren und deren Inhalte zugleich mit ihrer jeweiligen Bedeutung und Formatierung zu vergchen Em Dokument wird dabei in logische Komponenten Elemente gegliedert indem einzelne Textbereiche mit Hilfe so genannter Tags lt Tag gt markiert werden Jedes Element wird durch einen Start und einen End Tag begrenzt Die Tags geben dabei Aufschluss berrdiesIdentit t und Bedeutung eines Elementes lt p gt Dies ist ein Paragraph lt p gt Die auf diese Art und Weise beschriebenen Daten k nnen daher von anderen Anwendungen gelesen und entsprechend verarbeitet z B f r die Ausgabe auf dem Bildschirm oder Drucker formatiert oder in andere Sprachen transformiert werden Zur Familie der beschreibenden Auszeichungssprachen geh ren u a die Hypertext Markup Language HTML die Extensible Hypertext Markup Language XHTML und die Scalable Vector Graphics SVG Diese Sprachen wurden mit Hilfe so genannter Metasprachen geschaffen Eine Metaspr che ist eine Sprache mit der eine andere Sprache erkl rt oder definiert wird mit der also de Regeln die Grammatik f r diese Sprache festgelegt werden jen Beispiele f r solche Metasprachen sind die Standard Generalized Markup Language SGML und die Extensible Markup Language SGML ist ein umfangreicher Stand
77. egt die Annahme nahe dass es kaum erfahrene Benutzer im Umgang mit MyXamlCF gibt Eine Anfrage im Forum zum erw hnten Problem ergab die Antwort von Bert Bierman dem Autor der MyXamlCF Version und Leiter des Forums dass diese Funktion in der CF Version gar nicht implementiert ist und dieser Hinweis bisher von ihm selbst nirgendwo vermerkt und das Problem auch noch nicht entdeckt wurde Es gab jedoch einen hilfreichen L sungsvorschlag und daraufhin eine neue CF Version die es erm glichte Bilder auf die im Tutorial beschriebene Art und Weise mittels MyXaml Markup zu laden und den betreffenden Steuerelementen zuzuweisen Beispiel siehe Abschnitt 5 1 2 Abbildung 23 Unvollst ndiger und fehlerhafter TypeDecoder Ein weiteres Problem stellte die Verwendung einiger Element spezifischer Eigenschaften dar Beim Erzeugen der beschriebenen GUI Elemente fiel auf dass alle Buttons umrandet waren obwohl die Eigenschaft BorderStyle auf den Wert None gesetzt war Nach langer Suche im Programmcode des MyXaml Parsers wurde klar dass dies eine der fehlenden Funktionen im unvollst ndigen TypeDecoder war Die Dekodierung der entsprechenden Eigenschaft wurde hinzugef gt das MyXaml Projekt neu kompiliert und die R nder daraufhin nicht mehr angezeigt Im Laufe der Implementierungsphase trat es h ufiger auf dass einige Eigenschaften vom Parser ignoriert wurden Da die L sung jedoch zu dem Zeitpunkt bereits bekannt war konnte dasnjeweilige Problem dementsprec
78. ei MyXaml um eine neue Entwicklung handelt die zudem eine OpenSource Implementierung einiger weniger Personen anstelle eines gro en professionellen Teams darstellt die Implementierung noch weitgehend unvollst ndig und MyXamlCF lediglich eine Adaption dieser Technologie ist ist es durchaus denkbar dass diese Technologie einer wesentlichen Verbesserung bedarf um ene bessere Performanz der entwickelten Software erzielen zu k nnen Das Auslesen der Dokumente die sp tere Zuordnung und Instantiierung der entsprechenden Klassen sowie die Initialisierung der erzeugten Objekte mittels ihrer Eigenschaften und due Anbindung der Events scheinen ein zu langwieriger Prozess zu sein als dass der Parser diese Aufgaben in Rekordzeit l sen k nnte Hinzu kommt das Plug In Konzeptzuwelches bei der Modifikation erhalten bleiben sollte um weiterhin die M glichkeit einer Austauschbarkeit der Komponenten zu bieten Zur Erzeugung jeder einzelnen Komponente wird zun chst ein eigenes Parser Objekt erzeugt welches die jeweilige GUI Beschreibung verarbeitet und an die aufrufende Komponente bergibt M glicherweise h tte das Plug In Konzept verworfen oder aber auf andere Weise implementiert werden m ssen um einen schnelleren Ablauf der modifizierten Anwendung zu erzielen Mittels umfangreicher Tests k nnten verschiedene L sungen entwickelt und umgesetzt werden um das Problem zu finden So w re es u a eine Idee alle GUI Beschreibungen in einemgemeinsamen MyX
79. eilige Ausgabegr e festgelegt werden Bei kleinen Mobilcomputern wie Pocket PC s ist weiterhin die geringe Bildschirmgr e zu bedenken Dies erschwert zus tzlich d e ansprechende Gestaltung der grafischen Benutzungs schnittstelle Die Bedeutung solcher Benutzungsschnittstellen sowie die Probleme ber deren Gestaltung sollen im folgenden Abschnitt erl utert werden 3 3 Benutzungsschnittstellen Um _Computerprogramme benutzen zu k nnen ist eine Schnittstelle zwischen Mensch und Maschine notwendig die es dem Benutzer erm glicht den Programmablauf zu steuern um das angestrebte Ergebnis zu erzielen Die Mensch Computer Interaktion erfolgt durch die Kommunikation ber eine so genannte Benutzungsschnittstelle UI User Interface Dabei Grundlagen Seite 17 t t gt der menschliche Benutzer Eingaben am Computer ber Ger te w e beispielsweise eine Tastatur eine Maus einen Touchscreen oder aber auch ber ein Mikrofon Die Reaktion des Systems erfolgt nach Verarbeitung dieser Informationen mittels entsprechender Ausgaben u a auf einem Bildschirm oder Drucker Eine Benutzungsschnittstelle l sst sich aufgrund dieses Handlungsablaufes in drei Bereiche gliedern vgl hein S 29 f e Ein Ausgabe Eingabe bzw Darstellung von Informationen e Werkzeuge Vom Programm angebotene Funktionen zu dessen Steuerung e Dialoge Angabe der erforderlichen Informationen Aufruf der n tigen Funktionen Die in der Anwendung verwendet
80. einen ImageButton jener fokussiert bleibt oder der Fokus an ein anderes Steuerelement weitergegeben wird Das manuelle Setzen des Fokus Index ist notwendig damit wie bisher m InfoPanel problemlos zwischen den ImageButtons Buy Info und Start navigiert werden kann Diese sind gegenw rtig in einer ArrayList enthalten und mit einem horizontalen Fokus Index versehen der es erm glicht durch Angabe des jeweiligen Integer Wertesuden Fokus an den Button rechts oder links vom aktuell fokussierten Button zu bergeben Da der Fokus Index ebenso wie die Fokussierbarkeit ausschlie lich unter Verwendung des entsprechenden Konstruktors ber Parameter gesetzt werden konnte muss diese Eigenschaft zuk nftig separat definiert werden k nnen Zuletzt muss eine Modifikation der OnPaint Methode durchgef hrt werden da diese lediglich die Bilder f r die einzelnen Button Zust nde zuweist jedoch nicht berpr ft ob ein Bild gesetzt wurde oder nicht Diese Pr fung wurde n der aktuellen Implementierung des ImageButtons ebenfalls m einem parameterhaltigen Konstruktor vorgenommen Daher muss in der Anpassung der Klasse ImageButton imder OnPaint Methode zun chst gepr ft werden ob ein Bild f r einen bestimmten Zustand vorhanden ist oder nicht Ist kein Bild vorhanden so muss das Bild des Normalzustandes f r den jeweiligen Zustand angezeigt werden Ist dieses nicht definiert soll eine Fehlermeldung ausgegeben werden Mit den genannten Anderungen so
81. el_Faintobject FaintEwentArgs woid binbrowider Gottocusoblect EventArgs woid btnbrowtder Citdedobiect EventArgs waid changefocusfsting woid getSamplefResourgesString Buttonkesourges bin Up Gottocusobiecht Ewent nrgsi woid bin Down _ otfocuslobject EventArgs woid arawButon_Clickedl bject ButtonClikEwent rgs woid alFrowiderList Arsanlst Mytemlist bitnFrowvider Buttons int 0 wiwite m Liski biwlte mListArayListi cre ateList ArrayList int ArrayList zhortenStringistringi string property focusedButton int biwUp date dlite mListi Wiw OpdatedlitemListstring Araylist int ArrayList Aravlist shorten Stringistring string tillhiFListint ArrayList ArrayList updateCFListint ArrayList woid update B achwardsCRlLishint int ArrayList ArrayList waid Panel Finfofenster IHeader Label Test Label lAirTime Label IExpired Label IFayment Label Izenre Label lAdwise Label progressBar FrogressHBarE logo FictureHBox status FictureBox logalmage Image statusImage Image tmp_bin ImageButton bin _aray ArrayList currentltem Item caller ArrayList mmb MyllessageBox buy bool true purchased bool currentButtonF ocus byte Finfofensten Finfofenstenltem Aral Let Int altzet omponenti woid updatelntoclterm woid updatelnfol woid shawPFurchasebetaill woid processsenrelint string process P Arbytej string getFercentElapsedllong long int
82. enarbeit FHTW TSI Daten TSI ver ndert tempor re Daten im behandelt Erzeugung von Objekten Abbildung 3 Zusammenspiel der einzelnen Komponenten des ESG Client Neben der Trennung nach MVC wurde zus tzlich die grafische Benutzungsschnittstelle in einzelne Komponenten den ESG Client selbst einen Startbildschirm sowie mehrere Plug Ins unterteilt Als Plug Ins werden ausschlie lichKlassenbibliotheken engl Assemblies Dateiendung dll erkannt die eine bestimmte Schnittstelle implementieren Bei den Plug Ins handelt es sich um Elemente die vom Client ber die genannte Schnittstelle aufgerufen eingebunden und schlie lich dargestellt werden Beim Starten des ESG Client l dt dieser den Startscreen sowie alle verf gbaren Plug Ins ber den Startscreen kann der Benutzer die Plug Ins direkt ansteuern Diese werden danmfim Client angezeigt Der Client selbst besitzt lediglich eine Ladefunktion alle weiteren Funktionen werden von den einzelnen Plug Ins bereitgestellt Im Client werden d e Plug Ins in Form von Tabs engl f r Reuter repr sentiert Beim Anklicken eines Tabs wird das entsprechende Plug In angezeigt Plug Ins wurden verwendet damit die Funktionalit t des ESG Client var erbar und problemlos erweiterbar ist indem die einzelnen Plug Ins beliebig vom Programmierer ausgetauscht oder vollst ndig entfernt werden k nnen Ebenso bot ach die Verwendung eines Plug In Konzeptes f r d
83. er Screendesigner oder sonstigen Angestellten der TSI durchf hrbar ist Das Skinning Feature war zu diesem Zeitpunkt noch nicht fertig gestellt Ein PDA oder die Entwicklungsumgebung Visual Studio NEI 2003 mit einem Pocket PC Emulator standen ebenfalls nicht f r die Testperson Zur_Verf gung Bei der Testperson handelt es sich um einen 24 j hr gen m nnlichen Studenten der Internationalen Medieninformatik Die urspr ngliche Anwendung war der Testperson durch eine einmalige Vorf hrung bekannt Es wurde die Aufgabe gestellt ein neues Stylesheet Dokument mit einem Skin zu erzeugen Als Hilfestellung standen das vom ESG Client verwendete Stylesheet Dokument Stylesheet sts mit dem darin definierten StandardSkin sowie eine kurze Anleitung zur Verf gung Diese enthielt neben Hinweisen zur Vorgehensweise u a Screenshots der einzelnen Ansichten des ESG Clients sowie eine Auflistung aller verf gbaren Eigenschaften und zugeh rigen Werte der in der Anwendung verwendeten Steuerelemente Diese SkKinning Anleitung ist als PDF Dokument auf der beigef gten CD ROM enthalten Von der Testperson wurde das MyXaml Dokument TestUserStylesheet sts mit dem darin definierten Test UserSkin erstellt Mit Hilfe des Skinning Features konnten zu einem sp teren Zeitpunkt Stylesheet und Skin problemlos der Anwendung zugewiesen und damit sowohl die Skinningf higkeit des ESG Client als auch die F higkeit au enstehender Personen zur Erstellung von Stylesheet Doku
84. er Firmen angepasst Vertreiben de Firmen die Software an die Endkunden wird gew hrleistet dass diese das Programm als Produkt der jeweiligen Firma wiedererkennen 3 2 Pocket PC Mobilcomputer jeglicher Art werden unter der englischen Bezeichnung Handheld zusammengefasst Zu diesen kleinen Ger ten z hlen u a Palmtops Smartphones und Organizer Eine weitere Kategorie stellen die PersonahDigital Assistants dar deren besondere Merkmale die Gr e einer Handfl che und die fehlende Tastatur sind vgl hand Eine typische Erscheinungsform eines PDA ist der Pocket PC der m Folgenden n her betrachtet werden soll Pocket PC kurz PPC ist sowohl ein Betriebssystem als auch eine Hardware Plattform Ist Ersteres gemeint so sind darunter alle Windows CE Betriebssystemvar anten ab Version 3 0 zu verstehen Ist das _Ger tgemeint werden damit kleine Mobilcomputer bezeichnet die mit einem Touchscreen und einem Stift zur Kommunikation mt dem Benutzer sowie dem Betriebssystem Pocket PC und zahlreichen Funktionen w e Terminplaner Text verarbeitungsprogramm Internetbrowser und E Mail Programm ausgestattet sind Wie in Kapitel 2 3 bereits erw hnt stellt ein Pocket PC 2003 SE die Grundlage f r die weiter zu entwickelnde Implementierung eines ESG Client dar Aufgrund dessen soll in diesem Kapitel eine Abgrenzung zu anderen PPC Versionen getroffen und genauer auf die bei der Entwicklung zu beachtenden Besonderheiten des Pocket PC 2003 SE e
85. eralten und Daten daher in Form von XML Dokumenten gespeichert werden Zudem ist XML die L sung zum Problem der Inkompatibilit t zwischen Dokumenten und Systemen da die Verwendung von beschreibendem Markup_ eine 1 1 Abbildung zwischen logischen Elementen und Markup garantiert Die daraus resultierende Plattformunabh ngiskeit erlaubt einen problemlosen Datenaustausch n Form von XML Dokumenten zwischen unter schiedlichen Systemen vgl coombs S 939 f Web Services und das NEI Framework basieren auf XML Dokumenttypem wie XHTML und SVG werden mit Hilfe von XML definiert Auch die Abstraktion von Benutzungsschnittstellen erfolgt bereits mit Hilfe von XML Vom Mozilla Projekt wurde die XML User Interface Language definiert mit der die grafischen Benutzungsschnittstellen von Mozilla Anwendungen sowie deren Skins beschrieben werden Einen hnlichen Ansatz verfolgt Microsoft mit der Extensible Application Markup Language deren Erl uterung Gegenstand des folgenden Abschnitts ist 3 4 2 XAML Das voraussichtlich Ende 2006 erscheinende Windows Betriebssystem mit dem Code Namen Longhorn bringt ein vollkommen neues Programmiermodell mit sich Dieses setzt sich zusammen aus den folgenden Komponenten vgl long1 14 Organisation zur Entwicklung von Web Standards Siehe http www w3 org 15 Seit dem 24 05 2005 ist eine Beta Version der Bestandteile Indigo und Avalon f r Windows XP und Windows Server 2003 verf gbar Siehe http www
86. ert werden Die fest angegebenen Namen wurden zur Erzeugung einer Dynamika n dieser zweiten Phase gegen Platzhalter Text ausgetauscht Im ClientMainForm und im StartForm blieben die festen Werte erhalten In einer Textdatei wurden die alten und neuen Namen des Stylesheets bzw Skins vermerkt und in beiden Formularbeschreibungen die alten Namen gesucht und gegen die neuen ersetzt Allen aufgerufenen Komponenten werden ab sofort jeweils die neuen Namen als Parameter bergeben und der Platzhalter Text gegen diese ausgetauscht Dazu wurden zu der Methode getContentPanel der Plug In Implementierung Seite 74 Schnittstelle Parameter zur bergabe des neuen Stylesheet und Skinnamens hinzugef gt Die erreichte Dynamik erm glichte m n chsten Schritt die Implementierung des Skinning Features Dazu wurde zun chst das in Kapitel 5 entworfene Formular umgesetzt siehe Abbildung 28 Da dieses va Testzwecken dienen soll wurde es mder K rze der Zeit innerhalb einer Methode der Klasse LoadESGClient in Form von C Code erstellt und ist daher nicht skinningf hig Das FHTW Logo auf dem ClientMainForm urspr nglich eine PictureBox wird in der neuen Version von einem ButtonEx dargestellt Beim Klick dieses Buttons wird die Methode optionsClick aufgerufen und das Skinning Formular erzeugt Dieses listet alle verf gbaren Stylesheets in einer ListBox auf Im Code wurde festgelegt dass ausschlie lich nach Dateien mit der Endung sts im Ordner
87. erung beseitigte einige Unklarheiten wie z B die Verwendung von code behind Code de zuvor lediglich in der Theorie im Tutorial angerissen jedoch nirgendwo zu Demonstrationszwecken umgesetzt worden ist Mu Hilfe dieses Beispiels konnten letztendlich_erste Erfolge im Rahmen der Implementierungsversuche erzielt werden Die unzureichende Dokumentation des MyXaml Paketes sowie insbesondere das Fehlen einer Dokumentation der MyXamlCF Version sind auch die Gr nde f r alle folgenden 24 Siehe http www codeproject com netcf UsingMyXamICF asp Implementierung Seite 78 Schwierigkeiten bei der Umsetzung des skinningf higen ESG Client Die Implementierungs phase wurde somit ebenfalls wie auch zuvor bereits die Einarbeitungsphase unn tig ausgedehnt Fehlende Unterst tzung zur Verwendung von Bildern Zu den genannten Schwierigkeiten geh rte u a die Arbeit mit Bildern Une mn Tutorial gezeigten Beispiele funktionierten auf dem PDA nicht Es war nicht m glich mittels Markup Bilder f r die Steuerelemente zu definieren und diese den Elementen bei deren Instantilerung automatisch durch den Parser zuweisen zu lassen Es wurde weder em Bud angezeigt noch gab es eine Fehlermeldung Daher wurde die einzige Quelle zu Rate gezogen die bei Problemen verwendet werden konnte Dabei handelte es sich um ein Forum auf der MyXaml Webseite welches speziell f r die Arbeit mit der CF Version eingerichtet wurde Dieses war jedoch wenig besucht Daher li
88. es Schlie en Buttons vergr ert sowie das TVZapPlugIn aufgrund der H hen nderung weiter nach unten verschoben werden Die Buttons zur Navigation in der Anbieterliste des Plug Ins sollten in hremBreite verk rzt der Hintergrund der Liste gelb sowie die Schrift und die Rahmen um die Eintr ge blau gef rbt werden Der Titel des InfoPanels sollte gr er werden Weiterhin war die Einblendung der Prozentzahl des Fortschrittsbalken erw nscht Implementierung Seite 83 sg Pocket PC 2003 Second Edition Emulator Hilfe N24 Auslandsnachrich 1 02 44 02 46 Genre News and Current Daily News Overview with Harak P Hollenbach Parental Advise No Free of Charge Abbildung 32 ClientMainForm TVZapPlugIn und InfoPanel mit TestUserSkin fehlerhaft Wie in der vorhergehenden Abbildung ist erneut zu erkennen dass die nderung in der H he der Titelzeile nicht bernommen wurde Beim genauen Vergleich mit den im Skin angegebenen Werten fiel jedoch auf dass auch die Hintergrundfarbe und nderung der Gr e des Schlie en Buttons nicht angezeigt werden Daher scheint ein Fehler bei der Weitergabe des aktuellen Skins an das ClientMainForm vorzuliegen der w hrend der Implementierungsphase und zwischenzeitlichen Tests soweit unentdeckt blieb Die Rollbalken am rechten und unteren Randrlassen vermuten dass die Ver nderung von Positionen und Gr en von Steuerelementen problematisch ist wenn die Auswirkungen dieser nde
89. ewSkin string oldSkin string tempSkin string skins ListBox stylesheets ListBox thisF orm Form client LoadES Clienti Main void laadFluginssting ArrayList create T abBarstring ArrayList void LClientylainForm_Loadlobject System Ewent rgs woid Client aintom Gottocustobiec System Eventos void bin Exit_Clichabjecst System Ewent rgs void bin Tab_Clicflobjecst EventArgs void inactivate T abad waid activate Tablint void displayF lugin ES SFluglni woid sptionsclichobject EventArgs woid inBtn_Clichlobject EventArgs void shrlesheets_SelectedIndexChangedfobject EventArgs void inz_SelecstedindexChangedfabject EventArgs waid optionsFarm_Faintobject FaintEwent rgs woid stat creen Satan Mindo rs Fom s A Om Start Form client LoadESGClient mysamlfile string program filesi startparser vzaml Parzer starPicTitleBar PictureBox statBtn Exit ButtonE startPicFfH TWLogo PictureBox TAB_HEISHT byte 20 oldStylesheetName string nenStylesheetName string oldSkinName string newSkinMame string StartF ormiLoadES Client string string string string ore ateButtonsistring void starBtnExit_Clichlobject System EwentArgsi waid statBtn_Clicdobject System EventArgs woid Abbildung 39 Klassendiagramm des modifizierten ESGClient Packages cd ESGFlugir interface lESGFlugln ee le stingi Ge aeg ee Nantes gehuggie soiak on do sting Geahla
90. f beliebigen Plattformen ausgef hrt werden kann Dabei kann der Programmcode f r NET CF Anwendungen in den Programmiersprachen Visual Basic NET oder Visual C geschrieben werden wobei die einzelnen Komponenten einer Anwendung in verschiedenen Sprachenworliegen k nnen vgl richter S XXI f Bei der Kompilierung wird der Code zun chst um eine Zwischensprache umgewandelt und erst zur Laufzeit des Programms in den Entsprechenden Maschinencode berf hrt Just In Time Kompilierung Somit wird Plattformunabh ngiskeit hinsichtlich der unterliegenden Hardware dem Betriebssystem und der Programmiersprache erm glicht vgl vasters S 129 f Bei der Entwicklung ener Anwendung die auf verschiedenen Plattformen ausf hrbar sein soll muss jedoch beachtet werden dass ausschlie lich Funktionen benutzt werden die sowohl vom NET Framework als auch vom NET Compact Framework unterst tzt werden Ein weiterer Aspekt der bei der Erstellung einer Anwendung f r Pocket PC 2003 SE beachtet werden sollte ist die Umschaltm glichkeit der Bildschirmanzeige zwischen dem Hoch und Querformat Beim Start der Applikation und beim Formatwechsel sollte zun chst getestet werden welches Format eingestellt ist und somit die Anordnung der dargestellten Elemente entsprechend ver ndert werden Soll die Anwendung auf unterschiedlichen Plattformen benutzt werden k nnen sollte generell das unterliegende Betriebssystem berpr ft und dementsprechend due jew
91. fern eine Trennung von GUI und Logik m gl ch bzw schon implementiert ist Weiterhin soll die M glichkeit der Verwendung von Stylesheets berpr ft werden Die Komponente ImageButton wird im Hinblick auf die Kompatibilit t mit MyXaml untersucht 4 4 2 1 ESG Client Der eigentliche ESG Client der f r das Laden der Plug Ins und die Bereitstellung des DVB H AL verantwortlich ist besteht aus zwei Formularen dem ClientMainForm und dem StartForm siehe Abbildung 13 Beide Formulare beinhalten eine Titelleiste sowie einen Druckschalter zum Schlie en des Formulares bzw Beenden der Anwendung ein FHTW Logo sowie Druckschalter zur Repr sentation der verf gbaren Plug Ins Auf dem ClientMainForm bilden letztere am rechten Bildschirmrand eine Table ste Der linke Bereich ist ein Panel in dem das jeweils aktive Plug In angezeigt wird Ze Pocket DC 7003 Second Edition ve Pocket PE 2003 Second Edition Emustor Hile Frndator Hilfe contentPanel zur 4 Browse A Darstellung G OnAir i B eines Plug Ins Audio Services Abbildung 13 Screenshots des bestehenden StartForms links und ClientMainForms rechts Das ClientMainForm stellt eine Methode Main als Einstiegspunkt zum Starten der Anwendung bereit In dieser Methode wird mittels eines Konstruktoraufrufes ein neues ClientMainEorm Objekt erzeugt Dazu werden im Konstruktor zun chst das unterliegende Betriebssystem und die Plattform berpr ft sowie die Methoden In
92. formative statische Benutzungsschnittstellen erzeugt werden sollen Wird Code verwendet entwederunline oder code behind so muss die Anwendung zun chst kompiliert werden bevor dese mm Browser oder als eigenst ndige Anwendung ausgef hrt werden kann vgl long3 gt Weiterhin erm glicht XAML eine saubere Trennung zwischen der Darstellung und der Benutzungs schnittstelle selbst sofern kein inline Code verwendet wird vgl xaml Es k nnen einfach und schnell Prototypen f r grafische Benutzungsschnittstellen f r jede Art von Programm erstellt und sogar zur Laufzeit des Programms ausgetauscht werden vgl long2 Einzelne Komponenten einer Benutzungsschnittstelle k nnen ebenso einfach wiederverwendet werden da lediglich das Markup kopiert und an gew nschter Stelle eingef gt werden muss Mit Hilfe von styles k nnen zudem existierende Benutzungsschnittstellen schnell und einfach benutzerdefiniert modifiziert werden vgl xaml XAML ist aufgrund der zuvor genannten Vorteile eine M glichkeit grafische Benutzungsschnittstellen von Anwendungen flexiblerszu gestalten und diese austauschbar zu machen Eine Implementierung die Microsofts XAML Technologie bereits verwendet und nachfolgend vorgestellt werden soll st MyXaml 3 4 3 MyXaml MyXaml ist ein generisches Werkzeug zum Instantiieren von Klassen durch Textaus zeichnung stellt jedoch m Gegensatz zu XAML keine eigenst ndige Markup Sprache sondern vielmehr einen Parse
93. g der Pocket PC Emulator beendet Beide Fenster weisen typische Fensterelemente wie einen Titelbalken und einen Schlie en Knopf siehe Bildunterschrift 1 9 auf wobemabgesehen vom Arbeitsbereich das Auftreten aller weiteren Elemente optional ist vgl hein S 161 Beim Arbeitsbereich eines Fenstersystems handelt es ach um emp Formular Formulare sind Gruppierungen von Interaktionselementen die zur Beschreibung einer bestimmten Teilaufgabe angezeigt werden hein S 158 Abh ngig von der Art der Anwendung kann der Arbeitsbereich beispielsweise ein Formular zur Dateneingabe Datenbearbeitung oder Datenanzeige sein Die in einem Formular dargestellten Elemente sowie d e zuvor genannten Fensterelemente geh ren zur Gruppe der Interaktionselemente aus dem Bereich der Ein und Ausgabe Bei grafischen Benutzungsschnittstellen werden mm Bereich der visuellen Informa tionsdarstellung nteraktionselemente zus tzlich zu textuellen Informationen bereit gestellt Der Benutzer kann mit Hilfe dieser Elemente Dateneingaben vornehmen und somit mit dem System interagieren Neben den durch die Entwicklungsumgebung oder das Betriebssystem bereitgestellten Standard Interaktionselementen k nnen zus tzlich vom Programmierer applikationsabh ngige Interaktionselemente geschaffen werden Die Gruppe der Standard Interaktionselemente umfasst Bas selemente wie Eingabefelder Schaltfl chen Auswahllisten oder Grafiken und Erweiterungselemente z
94. g des NEI Frameworks ist in Abbildung 4 zu sehen Es wird dabei in zwei Bereiche unterteilt das Grundger st und einen darauf aufgesetzten Rahmen mit einer Vielzahl zus tzlicher Funktionen Web Benutzer Services schnittstelle Daten amp XML Basisklassen Grundger st Common Language Runtime Abbildung 4 Aufbau des NET Frameworks vasters S 8 Aufgrund des sgeringeren Speicherplatzes wird auf den kleinen Mobilger ten eine im Funktionsumfang reduzierte Version das NEI Compact Framework kurz NEI CF verwendet NEI Compact Framework ist eine hardwareunabh ngige Umgebung f r die Ausf hrung von Programmen auf Computerger ten mit beschr nkten Ressourcen NET 11 Die NEI Framework Klassenbibliothek ist eine Bibliothek aus Klassen Schnittstellen und Werttypen die in Microsoft NET Framework SDK enthalten sind Diese Bibliothek bietet Zugriff auf Systemfunktionen und wurde als Grundlage f r NET Framework Anwendungen Komponenten und Steuerelemente entworfen fcl Grundlagen Seite 16 Compact Framework ist eine Teilmenge der NEI Framework Klassenbibliothek und enth lt dar ber hinaus Klassen die ausschlie lich f r NEI Compact Framework entworfen wurden Es nutzt die vollst ndige NEI Framework Architektur mit der Common Language Runtime und der verwalteten Codeausf hrung netcf Dies bedeutet dass der Programmcode in einer beliebigen von NET unterst tzten Sprache geschrieben und au
95. g einzelner Stile und somit die Erstellung eines MyXaml Stylesheet Dokumentes Ein MxComponent Element kann beliebig viele Stil definitionen enthalten und deshalb eine gemeinsame Stilsammlung einen Skin f r den Re Design Seite 64 gesamten ESG Client darstellen Demzufolge kann jedes einzelne Steuerelement der Anwendung mit einem individuellen Stil versehen werden Ein MyXaml Dokument wiederum kann beliebig viele MxComponent Elemente enthalten Daher k nnen in einem Stylesheet Dokument mehrere Skins beschrieben werden Dem StartForm wurde in Abbildung 22 die Stildefiniion StartEormStyle zugewiesen Zeile 8 Wie in Abbildung 26 zu erkennen legt dieser Stil beispielsweise den Clientbereich sowie die Gr e des Formular Fensters fest Zeile 9 F r die Titelzeile und den Button zum Beenden der Anwendung werden jeweils die Gr e und Position auf dem Bildschirm angegeben In jeder Stildefinition k nnen ausschlie lich die spezifischen Eigenschaften des zugeh rigen Steuerelementes in Form von Attributen beschrieben werden Jedem Skin wie auch jedem einzelnen Stil wird ein individueller Name zugewiesen anhand dessen der Parser feststellen kann welcher Stil von welchem Element verwendet wird Im Hinblick auf eine vereinfachte Implementierung sollen an dieser Stelle den einzelnen GUI Elementen bereits Stilnamen zugewiesen werden Diese Zuweisung wird mit Hilfe von Screenshots der einzelnen Ansichten der Anwendung vorgenomme
96. gigkeit von den verf gbaren Videoltems zur Laufzeit des Programms hinzugef gt werden Die Stile mit den Eigenschaften Tor alle Steuerelemente wurden im Stylesheet erg nzt Der Konstruktor der Klasse Mu Panel wurde dahingehend angepasst dass zun chst ermittelt wird ob V ideoltems zur Verf gung stehen oder nicht und in Abh ngigkeit davon unter Verwendung der verantwortlichen Methode createPanelControls der Platzhalter Text im Dokument gegen die entsprechenden Steuerelemente in Form von MyXaml Markup ausgetauscht wird Weiterhin wird bereits an dieser Stelle eine Instanz der Klasse PInfofenster erzeugt damit sp ter lediglich eine Aktualisierung der Anzeige der detaillierten Informationen zu einem ausgew hlten Item notwendig ist Da das Plug In die GUI Definition selbst bereitstellen muss wird diese als eingebettete Ressource mitgeliefert und erst die modifizierte Version in Form eines neuen Dokumentes auf dem Ger t abgelegt Beim Aufruf des Plug Ins wird schlie lich mit Hilfe der Methode LoadObject die Klasse MyBanelsvon einem Parser nstantiiert und das resultierende Objekt unter dem Namen contentPanel zum ClientMainForm hinzugef gt Die Methode fordert die gleichen Parameter wie die bei der Implementierung des ClientMainForms beschriebene Methode LoadForm erm glicht es aber im Gegensatz dazu anstelle eines kompletten Formulares lediglich ein einzelnes Panel o zu erzeugen Bei der Instantiierung der Klasse Implementierung Se
97. glichkeit zur Verwendung von Namensr umen Namespaces Dazu kann f r das gesamte Dokument oder f r einzelne Elemente ein Uniform Resource Identifier URI angegeben werden siehe Zeile 3 vgl xml S 11 ff Damit eine Anwendung mit den in einem XML Dokument enthaltenen Informationen arbeiten kann wird dieses von einem Parser gelesen Ein solcher Parser wird beispielsweise Grundlagen Seite 22 durch das Document Object Model DOM bereitgestellt DOM ebenso wie auch XML eine Empfehlung des World Wide Web Consortiums W3C ist eine plattform und sprachunabh ngige Schnittstelle die es Programmen erm glicht auf Inhalt Struktur und Layout eines HTML oder XML Dokumentes dynamisch zuzugreifen und diese zu ver ndern vgl dom1 DOM definiert sowohl die logische Struktur eines Dokumentes als auch wie darauf zugegriffen und dieses Dokument manipuliert werden kann Das Dokument wird dabei im Speicher in Form einer Baumstruktur abgebildet in der jedes XML Element einen Knoten und jeder Knoten ein Objekt darstellt mit dem wiederum in der Anwendung gearbeitet werden kann vgl dom2 Aufgrund ihrer Erweiterbarkeit und damit einhergehenden Flexibilit t ist die Extensible Markup Language vielseitig einsetzbar Da es kein amp ufestgelegten Tags gibt die sich bei nderungen in der Spezifikation ebenso ndern m ssen XML Dokumente nicht zwingend gewartet und an Neuerungen angepasst werden Sie k nnen in dem Sinne nicht v
98. grafischen Benutzungsschnittstelle zugeordnet werden k nnen Liegt die Definition dieser Stile getrennt von der Applikationslogik eines Programms vor so kann die GUI einfach und schnell an unterschiedliche Gegebenheiten angepasst werden indem die einzelnen Stildefinitionen ver ndert werden Die unterschiedlichen Zusammenstellungen einzelner pe k nnen beispielsweise als Stylesheets gespeichert werden wie sie u a aus dem Internebf r Webseiten in Form von Cascading Stylesheets CSS bekannt sind Im Falle einer vollst ndigen Trennung von GUI und zugeh riger Applikationslogik w re es m glich bereits w hrend der Analysephase von Softwareentwicklungsprojekten erste Prototypen der GUI zu erstellen die nach erfolgreicher Abnahme durch den Kunden von den Programmierern mit den entsprechenden Funktionen versehen werden k nnen Die Prototypen k nnen ebenso parallel zur Implementierung der Logik ver ndert oder neu erstellt werden ohne die Programmierer in ihrer Arbeit zu behindern Es k nnten daher auf diese Art und Weise verschiedene grafische Benutzungsschnittstellen f r ein Programm f r unterschiedliche Plattformen und verschiedene Designvorstellungen der Kunden entwickelt werden die einfach und schnell ausgetauscht bzw modifiziert werden k nnen Diese Funktionalit t bietet sich f r die Modifikation des ESG Client im Hinblick auf die Anpassung an die verschiedenen Corporate Designs der kaufenden Firmen sowie die geforderte Unterst
99. h Der ImageButton kann jedoch wie die Analyse der Komponente ergeben hat nicht auf dieselbe Art und Weise w e m bestehenden ESG Client verwendet werden Eine Anpassung des parameterlosen Konstruktors die Erg nzung der Eigenschaften Focusable und FocusIndex sowie eine berpr fung der Zustandsbilder in der OnPaint Methode sind notwendig damit d e bisherige Funktionsweise ohne Einbu en beibehalten werden kann Im leeren Konstruktor muss bei der Instantiierung des Buttons standardm ig der Normalzustand angenommemund somit die Eigenschaften isPushed und isPressed auf den Wert false gesetzt werden wie es in den bisher verwendeten Konstruktoren mit Parameterliste der Fall war Da die Fokussierbarkeit eines ImageButtons ab sofort nicht mehr automatisch abh ngig vom verwendeten Konstruktor auf true oder false festgesetzt wird sondern manuell festgelegt werden soll muss zus tzlich m leeren Konstruktor der Wert f r die Fokussierbarkeit standardm ig auf den Wert false gesetzt werden Zum manuellen Setzen der Fokussierbarkeit m ssen eine Set und eine Get Methode definiert werden ber die die Eigenschaft Focusable auf true oder false gesetzt bzw deren aktueller Wert abgerufen werden kann Diese Ver nderung ist notwendig da das TVZapPlugIn nicht fokussierbare ImageButtons das InfoPanel hingegen fokussierbare ImageButtons ben tigt Der Wert der Fokussierbarkeit legt dabei fest ob nach dem Druck auf Re Design Seite 60
100. handelt 5 1 2 Anpassung des ImageButtons Um den ImageButton auf hnliche Art und Weise mit MyXaml Markup beschreiben und durch den Parser instantiieren lassen zu k nnen wie den in Abbildung 22 dargestellten ButtonEx muss zun chst ein Namensraum definiert werden Als Namensraum wurde der 22 Sammlung von OpenSource Steuerelementen die aufgrund der begrenzten Anzahl vorhandener Steuerelemente speziell zur Verwendung auf dem NET Compact Framework entwickelt wurden Siehe http www opennetcf org CGategoryView aspx category Home Re Design Seite 59 gegenw rtige Assemblyname ImageButton festgelegt Die Abbildung des Namensraumes nach MyXaml sowie die Beschreibung eines ImageButtons sind in Abbildung 23 zu sehen l lt Namespace Mapping gt 2 xmlns imgb ImageButton 3 4 lt Button Beschreibung gt 5 lt imgb ImageButton def Name Nach ben 6 Size 50 20 7 Location 10 130 EN Focusable false 9 ButtonClicked imgb_ButtonClicked gt 10 lt imgb NormallImage gt 11 lt Bitmap File btnUp bmp gt 12 lt imgb Normallmage gt 13 lt imgb Pressedlmage gt LA lt Bitmap File btnUp pressed bmp gt 15 lt imgb PressedImage gt 16 lt imgb ImageButton gt Abbildung 23 Beispiel f r die MyXaml Beschreibung eines ImageButtons Generell st abgesehen von der Eigenschaft Eocusable Zeile 8 eine solche Beschreibung bereits ohne eine Modifikation der Klasse ImageButton m glic
101. hend schnell behoben werden Weiterhin ist aufgefallenydass alle Farben die im Markup direkt ber RGB Werte angegeben wurden nicht erkannt und statt dessen d e Farbe schwarz verwendet wurde Die Dekodierung des Wertes f r das Color Attribut war bereits im TypeDecoder implementiert wie sich heraus stellte war 25 Siehe http 66 139 77 10 forum f 26 Implementierung Seite 79 diese Implementierung jedoch fehlerhaft Die vorhandene Methode wurde korrigiert und die RGB Werte konnten zur Darstellung beliebiger Farben verwendet werden Fehlende Unterst tzung zur Verwendung von Bildern in Stylesheets Bei dem Versuch der Auslagerung der GUI spezifischen Eigenschaften der Steuerelemente stellte sich heraus dass die Bildanzeige erneut nicht funktionierte Der Grund daf r schien die Klasse StyleModel des MyXaml Parsers zu sein die eine Definition eines Bitmap Elementes nicht als Stil Eigenschaft erkannt hat Aufgrund des begrenzten Zeitfensters wurde diese Problematik jedoch zun chst an das Ende der Implementierungsphase verschoben Letztendlich reichte die Zeit zur Besch ftigung mit dem zugeh rigen Code nicht aus um das Problem zu l sen Da auch Bert Bierman keinen L sungsvorschlag wusste konnte die benutzerdefinierte Austauschbarkeit von Bildern anhand von Pfadangaben im Stylesheet im Rahmen dieser Arbeit nicht realisiert werden Daher werden Bilder im gegenw rtigen modifizierten ESG Client direkt im MyXaml Dokument oder zum Teil im Pr
102. her Form dar und ist standardm ig als Software auf DVB T Receivern installiert Sinn und Zweck eines EPG ist es eine vom Benutzer erzeugte Programmdatenbank zu speichern und somit dem Benutzer die gew nschten Programme sowie Informationen ber diese Programme schnellstm glich zug nglich zu machen vgl ets 2 10 Die vom Programmanbieter ausgesendeten Service Informationen werden vom EPG aus dem Datenstrom ausgelesen und dem Benutzer in bersichtlicher Form pr sentiert Je nach Anbieter sind verschiedene Informationen zu den aktuell laufenden und folgenden Sendungen verf gbar z B der Titel einer Sendung Start und Endzeit oder eine kurze Beschreibung des Inhalts vgl epg W hrend es sich bei DVB T vorwiegend um die bertragung von Fernsehprogrammen handelt erm glicht das IP Datacast Verfahren ber DVB H die Versendung von Daten jeglicher Art vgl ipdatal Aufgrund dieser Vielfalt werden die bertragenen Inhalte auch Services genannt Zum Empfang von DVB H Signalen sind eine Mobilfunkantenne und ein entsprechender Receiver notwendig Beim Einschalten des Empf ngers wird mit den DVB SI Tabellen zun chst eine IP Adresse bertragen unter welcher der so genannte Electronic Service Guide ESG zu finden ist Der ESG ist ein Protokoll das Informationen ber alle ausgesendeten Services enth lt Zugang zu diesen Diensten erh lt der Benutzer ber einen ESG Client Diese Software liest die spezifischen Informationen
103. ie Entwicklung im Team an da verschiedene Funktionen unabh ngig von anderen Teammitgliedern implementiert werden konnten Die von einem Plug In dargestellten Daten liegen zun chst in Form von XML Dokumenten vor die aus den bertragenen IP Paketen erzeugt wurden Um diese Daten vi sualisieren zu k nnen erfolgt im Plug In der Aufruf einer Methode aus dem DVB H AL Die Abstraktionsschicht generiert daraufhin Listen von Objekten aus den vorliegenden XML Daten Dabei werden je nach Inhalt der IP Pakete die ausgestrahlten Services in so genannte Video Audio und Service Items unterteilt sowie Hierarchien dieser Objekte erzeugt Die Hintergrund Seite 11 verf gbaren Items werden schlie lich an das aufrufende Plug In bergeben woraufhin dieses wiederum die zur Veranschaulichung ben tigten Daten z B Name Typ oder Anbieter des jeweiligen Services ausliest und diese Daten n bersichtlicher Form f r den Benutzer darstellt Einen berblick ber die Kommunikation zwischen den einzelnen Komponenten gibt Abbildung 3 Da sich diese Arbeit mit der Weiterentwicklung dieses Resultafes einer Projektarbeit befasst gelten die technischen Vorgaben die bereits im Rahmen des zugrunde liegenden Projektes festgelegt wurden Diese Vorgaben werden im folgenden Abschnitt erl utert 2 3 Technische Vorgaben In den technischen Vorgaben die im Rahmen des DVB H Projektes festgelegt wurden werden die Zielplattformen f r den ESG Client
104. ie Klasse TVZapping welche das IESGPlugIn implementiert bleibt erhalten und wird lediglich in den Methoden san die nachfolgend beschriebenen Ver nderungen der Schnittstelle angepasst Die Klasse MyPanel die das eigentliche Plug In ausmacht wird ebenfalls in ihre Darstellungsebene und die unterliegende Logik zerlegt Die Klassen MyItemList und MyUpdatedTtemList sollen berarbeitet und als Methoden in die Klasse MyPanel integriert werden Die urspr nglichen Klassen entfallen daraufhin Die Definition der Klassen PInfofenster und MyMessageBox erfolgt innerhalb einer separaten Komponente im Namensraum InfoPanel Die GUI Definitionen beider Klassen werden ebenfalls in MyXaml Dokumente ausgelagert Ein einfaches Beispiel einer GUI Beschreibung in Form von MyXaml Elementen wurde bereits in den Grundlagen m Kap tel MyXaml siehe 3 4 3 gezeigt Im Hinblick auf die tats chlich Umsetzung der GUI Logik Trennung unter Verwendung von Stylesheets ist in Abbildung 22 ein konkretes Beispiel f r die Umsetzung des StartForm zu sehen Dargestellt sind die Beschreibungen des Formulares selbst sowie der Elemente zur Repr sentation der Titelzeile und des Druckschalters zum Beenden der Anwendung Re Design Seite 58 1 lt xml version 1 0 encoding utf 8 7 gt 2 lt MyXkaml xml lang en US 3 xmlns def Definition 4 xmlins ref Reference D xmlns System Windows Forms 6 xmlns opwf 0penNETCF Windows Forms gt 7 8 lt Fo
105. immten Diensten in vorgegebenen Kategorien oder 8 Der ESG Client funktionierte mit Testdaten die direkt in die Zwischenschicht DVB H AL eingegeben wurden konnte jedoch im Rahmen des Projektes nicht zusammen mit dem unterliegenden Modell der TSI getestet werden da dieses noch nicht voll funktionsf hig war Auch eine bertragung ber DVB H war noch nicht m glich da der Testkanal noch nicht freigegeben war und kein Empfangsmodul zur Verf gung stand Hintergrund Seite 9 durch beliebige Texteingabe sowie de M glichkeit hnlich wie beim Fernsehen durch alle verf gbaren TV Audio oder sonstigen Service Dienste zu zappen Die Bedienung der Anwendung erfolgt auf dem PDA mit dem Steuerkreuz dem Eingabestift oder dem Finger Optimiert ist die Darstellung f r das Querformat Die Karteikartenmetapher am rechten bzw linken Rand abh ngig von der Einstellung des Querformates als Rechts oder Linksh nder erm glicht eine einh ndige Bedienung des ESG Clients z B in Bus und Bahn Services sind f r den Benutzer ausschlie lich ber diese Software zug nglich Wird ein bestimmter Service gew hlt go wird dieser vom ESG Client als externe Applikation gestartet Der ESG Client verbleibt im Hintergrund bis er durch den Benutzer beendet wird Der Aufbau und die Funktionsweise des ESG Client werden nachfolgend genauer betrachtet 2 2 Vorstellung des Prototypen Aufgrund der Gr e des Projektteams sowie der verschiedenen Standort
106. ingegangen werden Eine bersicht ber alle Pocket PC Plattformen und Betriebssysteme gibt Tabelle 1 Tabelle 1 Pocket PC bersicht vgl wince1 und wince2 Name Basis Betriebssystem Name Pocket PC Windows CE 3 0 Pocket PC 2000 Pocket PC 2002 Windows CE 3 0 Pocket PC 2002 Version 11171 zus tzliche Funktionen Grundlagen Seite 15 Name Basis Betriebssystem Name Pocket PC 2003 Windows CE NET Windows Mobile 2003 for Pocket Version 4 2 PC Pocket PC 2003 Second Edition Windows CE NET Windows Mobile 2003 Second Version 4 21 Edition for Pocket PC zus tzliche Funktionen Wie in Tabelle 1 zu erkennen stellt Windows Mobile 2003 SE for Pocket PE das installierte Betriebssystem der Plattform Pocket PC 2003 SE dar Den Kern dieses Betriebssystems bildet Windows CE NEI Windows CE ist eine Windows Betriebssystemvariante speziell f r kleine mobile Endger te vgl w ncel Das K rzel NEI weist darauf hin dass das NEI Framework in dieser Windows CE Version implementiert ist Dieses Framework ist das Programmiermodell von NET vgl west S 116 Es setzt sich zusammen aus einer allen Programmiersprachen gemeinsamen Laufzeitumgebung CLR Common Language Runtime und einer Basisklassenbibliothek FCL Framework Class Library und soll die Entwicklung und Ver ffentlichung moderner komponentenbasierter Anwendungen erleichtern vgl csharp S 3 Ein m gliche Darstellun
107. ite 71 MyPanel wird ebenfalls null anstelle eines Parent Objektes bergeben da m Plug In der aufrufende Client nicht bekannt ist Aus diesem Grund wird das ClientMainForm erst beim Einbinden des contentPanels in der LoadESGClient Klasse als Paremt Objekt des Panels gesetzt Die ImageButtons wurden auf die erforderliche Art und Weise mm Form von MyXaml Markup beschrieben und die Modifikation der Klasse ImageButton parallel zur Anpassung des TVZapPlugIns vorgenommen Auf den ImageButton wird mm Anschluss an die Beschreibung des Plug Ins n her eingegangen Die Klassen MyItemList und MyUpdatedItemList wurden vereinfacht und in Form von Methoden zur Klasse MyPanel hinzugef gt Die urspr nglichen Klassen wurden daraufhin entfernt Deren Funktionalit t wurde dabe nicht ver ndert lediglich die von beiden Klassen verwendeten Methoden optimiert und miteinander kombiniert Anstelle der bisher direkten Erzeugung der Buttons f r die Providerliste werden diese in der neuen Version ebenfalls in Form von Markup beschrieben und an die aufrufende Methode in Form einer Zeichenkette bergeben Das urspr nglich zum Zeichnen des gesamtes Panels verwendete Paint Event wird in der modifizierten Version ausschlie lich dann ben tigt wenn Videoltems verf gbar sind und das Panel zum ersten Mal erstellt wird da nur dann eine Linie an den rechten Rand der erzeugten Providerliste gezeichnet werden muss um diese vom InfoPanel abzugrenzen Da mi
108. itializeComponent und Init aufgerufen die wiederum de GUI des Formulares und d e zugeh rige Logik bereitstellen Analyse Seite 39 Die Definition der GUI erfolgt zum gr ten Teil in der Methode InitializeComponent Dar n werden ein ResourceManager Objekt zur Verwaltung der verwendeten Bilder sowie die einzelnen Steuerelemente erzeugt deren Eigenschaften initalisiert und Eventhandler zugewiesen Weiterhin werden Eigenschaften des ClientMainForm selbst gesetzt das Load Event angebunden und alle Steuerelemente zum Formular hinzugef gt Auf die Methode InitializeComponent k nnte be der Modifikation des ESG Client verzichtet und an deren Stelle die darin definierten Elemente mit Hilfe von MyXaml Markup in einem separaten Dokument beschrieben werden Ein ResourceManager wird in Zukunft ebenfalls nicht mehr ben tigt da zur Durchf hrung des SKinnings die verwendeten Bilder nicht mehr als Ressourcen Objekte sondern als Bilddateien in einem Ordner vorliegen m ssen um ausgetauscht werden zu k nnen Die Init Methode definiert mit Hilfe anderer Methoden die Steuerung der Anwendung Es wird festgelegt dass sobald das Formular den Fokus erh lt dieser an das contentPanel d h das geladene Plug In bergeben wird S mtliche Ressourcen werden geladen und den zuvor erzeugten Steuerelementen zugewiesen In der modifizierten Version des ESG Client k nnten die Bilder direkt im MyXaml Dokument den einzelnen Elementen durch Pfadangaben
109. izeComponent in ein MyXaml Dokument ausgelagert werden da Analyse Seite 48 diese fast ausschlie lich die Steuerelemente der GUI definiert Bilder liegen in der vorhandenen Version als Ressourcen vor Bei einer Neugestaltung sollten diese als Dateien n einem Ordner abgelegt sein und m glichst m Stylesheet bzw in den darin enthaltenen Skins ber die Angabe eines Pfades darauf zugegriffen werden Aus dem zuvor genannten Grund sollten die Methoden getBigIcon und getTablIcon der Schnittstelle IESGPlugIn lediglich String Arrays mit Pfaden zu den ben tigten Bildern zur ckgeben statt wie bisher Bitmap Arrays welche die vom Plug In als Ressourcen bereitgestellten Bilder enthalten Im TVZapPlugIn sollten die Angabe von Eigenschaften und Erzeugung der Steuerelemente aus dem Konstruktor bzw der Paint Methode entfernt und in einem MyXaml Dokument bzw dem zugeh rigen Stylesheet beschrieben werden Die Paint Methode ist jedoch weiterhin notwendig zum Zeichnen der Begrenzungslinie zwischen der Liste und dem PInfofenster Alle Komponenten die gegenw rtig dynamisch erzeugt werden k nnten auch weiterhin dynamisch erzeugt werden jedoch in Form von MyXaml Markup welches wiederum in das MyXaml Dokument eingef gt und vom Parser instantiiert wird Das bisherige PInfofenster ist mit dentischem Aufbau direkt integriert in alle drei Zapping Plug Ins und k nnte daher als eine separate Komponente umgesetzt werden die dann individuell
110. ktivierung bzw Deaktivierung und Darstellung der vom Benutzer ausgew hlten Plug Ins Diese Methoden sollen in ihrer grundlegenden Funktionalit t erhalten bleiben Ee K nnen jedoch Ver nderungen notwendig sein so dass zwar das Resultat gleich bleibt dieses jedoch durch eine andere Vorgehensweise erzielt wird Der Konstruktor desuStartForms ist nicht parameterlos sollte aber dennoch weiterhin verwendet werden k nnen Es st angedacht dass die bestehenden Klassen ClientMainForm und StartForm verwendet und dar n jeweils die zugeh rigen MyXaml Dokumente zur Beschreibung der GUL eingelesen werden Somit kann die Parameter bergabe im Konstruktor des StartForms beibehalten und ein einfaches Formular mittels MyXaml Markup beschrieben werden Es ist we terhin m glich die Anwendung auch ohne den Startscreen zu verwenden bzw diesen auszutauschen Steuerelemente die bisher dynamisch erzeugt wurden sollten auch in der modifizierten Version des ESG Client dynamisch jedoch n Form von Markup Elementen generiert und in das Dokument eingef gt werden In der folgenden Abbildung sind die beiden Klassen mit allen Variablen und Methoden sowie deren Beziehung zueinander in einem Klassendiagramm dargestellt cd ESGllient Ssten Mingos Foma A O Client Main Form picTitleBar System Windows F orms Picture Bos btnExit OpenHNETCF Windows F orms Button Ex statScreen StarntFform System Mingo ks Form e A TAB WIC TH byte 40 Start Form
111. l rt Im Anschluss daran wird das grundlegende Wissen zu den Themenbereichen Pocket PC Benutzungsschnittstellen und Auszeichnungssprachen insbesondere XML XAML und MyXanl vermittelt Kapitel 4 Analyse Gegenstand dieses Kapitels sind eine allgemeine Aufgabenbeschreibung und die Festlegung der Zielgruppe f r das neue System sowie die Suche und Auswahl eines zur Modifikation verwendbaren L sungsansatzes Unter dem Gesichtspunkt der Verwendung der gew hlten L sung soll daraufhin die bestehende Anwendung untersucht sowie Anwendungsf lle zur geplanten Durchf hrung der benutzerdefinierten Anpassung beschrieben werden Anhand der Analyse werden zum einen Anforderungen abgeleitet die an das ver nderte System zu stellen sind sowie zum anderen das konkrete Ziel definiert welches im Rahmen der vorliegenden Arbeit erreicht werden soll Einleitung Seite 4 Kapitel 5 Re Design Gegenstand des f nften Kapitels ist die Anfertigung eines konkreten Entwurfes des neugestalteten ESG Client Dieser umfasst eine Definition der zuk nftigen Systemarchitektur die Vorgaben zum Aufbau der zu verwendenden Skins sowie eine Beschreibung der Funktionalit t der modifizierten Anwendung Kapitel 6 Implementierung Auf Bas s des Entwurfes erfolgt die Implementierung des neuen Systems Die Vorgehensweise bei deren Durchf hrung wird in diesem Kapitel beschrieben sowie w hrend dessen aufgetretene Probleme benannt und erl utert Anhand enes Te
112. llt ist die bereits weit verbreitete Idee der Beschreibung grafischer Benutzungsschnittstellen Mittels emer XML basierten Markup Sprache Dieses Konzept st u a bekannt aus Anwendungen wie dem MP3 Player WinAmp oder Applikationen des Mozilla Projektes z B dem Internetbrowser Firefox bzw dem E Mail Programm Thunderbird Benutzer dieser Softwareprodukte erhalten dabei die M glichkeit eigene Stylesheets in Form von XML basiertem Markup zu verfassen oder vorgefertigte Dokumente aus dem Internet herunter zu laden Eine XML basierte L sung bietet sich va deshalb f r die Modifikation des ESG Client an weil zus tzlich zur Erf llung der genannten Kriterien weitere Vorteile hinsichtlich einer Strukturierung der Daten mit Hilfe vombeliebig definierbaren textuellen Tags und damit einhergehend eine Erweiterbarkeit der ausgew hlten Markup Sprache bestehen Es gibt bereits eine Vielzahl deser XML bas erten L sungen zur Beschreibung von GUI s wie z B XUL und XAMb wobei die XAML Technologie aus dem Hause Microsoft die attrakt vste L sung zur Modifikation des ESG Client darstellt da diese die Namensr ume des NEI Frameworks unterst tzt und auf Basis von Markup die zu den Tags geh renden Klassen instantiiert Windows Longhorn und XAML sind jedoch noch nicht ver ffentlicht und k nnen daher am Rahmen dieser Arbeit nicht verwendet werden Anderen bekannte XML basierte L sungen k nnen ebenfalls nicht verwendet werden da diese nicht die
113. llt werden inwieweit eine Modifikation des bestehenden ESG Client mit Hilfe des gew hlten L sungsansatzes m glich ist Dazu wird analysiert inwiefern die bestehende Anwendung bereits eine Trennung zwischen GUI und Applikationslogik aufweist bzw welche Ver nderungen zur Umsetzung dieses Konzeptes notwendig sind 4 4 Bestehender ESG Client Gegenstand der folgenden Abschnitte sind die Vorstellung der Systemarchitektur des ESG Client sowie die Auswahl und Analyse einiger zu modifizierender Komponenten im Hinblick auf die Anwendbarkeit von Skinning mit Hilfe der zuvor ausgew hlten MyXaml Technolosgie 4 4 1 Systemarchitektur Die bestehende Anwendung ist vollst ndigAn C implementiert Sie setzt sich zusammen aus dem ESG Client selbst Hauptformularsund Startbildschirm sowie sechs Plug Ins die ber eine Schnittstelle geladen werden Die Plug Ins Search OnAir und Browse binden ein Informationen Fenster in Form einer separaten Klassenbibliothek ein Alle Plug Ins verwenden das speziell f r den ESG Client geschaffene Steuerelement ImageButton Die ben tigten Informationen ber verf gbare Services werden unter Verwendung der Zwi schenschicht DVB H AL ermittelt In Abbildung 12 wird das bestehende System in Form eines Package Diagramms veranschaulicht Dargestellt sind jeweils die ffentlichen Klassen eines Packages sowie die Beziehungen der Komponenten zueinander Die Beziehungen zeigen an ob die Komponente auf die mittel
114. llte es m glich sein den ImageButton so zu beschreiben wie es in Abbildung 23 gezeigt wurde Die Klasse ButtonResources wird zuk nftig nicht mehr ben tigt 5 1 3 Anpassung der Plug In Schnittstelle Damit due Durchf hrung eines Brandings m glich ist m ssen wie w hrend der Analyse bereits festgestellt alle verwendeten Bilder direkt als Dateien in einem Ordner auf dem Endger t bzw dem Pocket PC Emulator vorliegen anstatt wie in der aktuellen Version des ESG Client als Ressourcen aus den Klassenbibliotheken der Anwendung geladen zu werden Dies bedeutet dass alle von den Plug Ins ben tigten Bilder nicht mehr von diesen selbst sondern vom aufrufenden Client bereitgestellt werden m ssen Daher ist eine Modifikation in der Programmierung der Schnittstelle IESGP lugIn erforderlich Inder gegenw rtig vorliegenden Version werden die zur Repr sentation eines Plug Ins im ESG Client ben tigten Bilder aus den Ressourcen des Plug Ins ausgelesen und ber die Re Design Seite 61 aufgerufenen Methoden getBigIcon und get TabIcon in Form von Arrays an den ESG Client bergeben Da die geforderten Bilddateien in der modifizierten Version bereits in der Anwendung selbst vorliegen ist es f r den ESG Client lediglich notwendig diesPfade zu den zu verwendenden Bildern zu kennen Daher sollen die zuvor genannten Methoden anstelle von Bitmap Arrays zuk nftig String Arrays zur ckgeben welche die ben tigten Pfadangaben zu den entsprechen
115. ls des implementierten Skinning Features alle verf gbaren Stylesheets und dar n definierten Skins schnell angezeigt und ganz einfach per Knopfdruck ausgew hlt werden k nnen Die Erstellung der einzelnen Skins ist jedoch wie in den Anforderungen bereits beschrieben etwas zeitaufw ndiger und komplizierter da die einzelnen Stile der Elemente direkt in Form von MyXaml Markup definiert werden m ssen Es ist daher prinzipiell m glich ein einfaches Branding von einem TSI Mitarbeiter mit grundlegenden Programmierkenntnissen durchf hren zu lassen Zuk nftig k nnte jedoch eine GUI zur Erstellung von Skins hilfreich sein welche die Auswirkungen der Ver nderung von Eigenschaften zur Darstellung eines Elementes direkt anzeigt damit das Branding zum einen auch von Angestellten ohne jegliche Programmierkenntnisse und zum anderen wesentlich schneller und nahezu fehlerfrei durchgef hrt werden kann Die bei der momentanen Vorgehensweise ur Skin Definition als Hilfestellung ben tigte Skinning Anleitung konnte ebenfalls verfasstwerden und ist auf der beigelegten CD zu finden Diese Anleitung gibt Hinweise zum Aufbau und Definition von Stylesheets und Skins sowie einen berblick ber alle verwendbaren Eigenschaften der Steuerelemente und deren m gliche Werte Die Demonstration der Skinningf higkeit konnte w hrend der Testphase problemlos erfolgen und Fehler mm der Implementierung dadurch aufgedeckt und beseitigt werden Fehlende Funktionalit
116. ls gt 12 lt Button def Name btn1 MxStyle btnlStyle 13 Location 10 10 Size 50 20 Text Click gt 14 lt Include Src buttons mxc ComponentName btn Postfix 2 gt 15 lt Controls gt 16 lt Form gt 17 lt MyXaml gt Abbildung 9 Beispiel f r ein MyXaml Dokument 17 Siehe hitp www codeproject com netcf UsingMyXamiICF asp 18 Mit Hilfe von Reflektion k nnen Informationen ber geladene Assemblies und die darin definierten Typen z B Klassen ermittelt werden Instanzen eines Typs k nnen zur Laufzeit erstellt aufgerufen und manipuliert werden vgl refl 19 Sofern nachfolgend nicht explizit eine andere Quelle genannt wird erfolgt die Erl uterung von Funktionsweise und Dokumentaufbau auf Basis der MyXaml Dokumentation siehe doc Grundlagen Seite 27 Ein MyXaml Dokument beginnt mit der XML Deklaration Abb 9 Zeile 1 gefolgt vom Element MyXaml Abb 9 Zeile 2 das den Wurzelknoten bildet und Sprache sowie Namespaces festlegt Sind Namespace und Assemblyname gleich so ist nur dieAngabe des Namespace erforderlich anderenfalls ist zum Mappen die Angabe beider Namen erforderlich Werden mehrere Namespaces verwendet werden so lassen ach dese durch Pr fixe unterscheiden xmlns Pr fix Namespace Name Assembiy Name Um die Anwendung in einem Fenster starten zu k nnen folgt im Allgemeinen die Beschreibung eines Formulares Abb 9 Zeile 5 Jedem Formular muss ein Name zugewiesen werde
117. mediabroadcast com de Home templateld renderNormal id 46516 html Siehe http www pcmcia org pccard htm Siehe http www dvb org Siehe http www dvb org documents mhite papers wp07 DVB H final pdf Siehe http www ipdc forum org OO P GoObh Hintergrund Seite 6 beliebiger Art zu bertragen Das Empfangsmodul kann bei Anwendung dieses Verfahrens zwischenzeitlich abgeschaltet und somit Strom gespart werden vgl ets l S 5 Zugang zum digitalen Fernsehen erh lt der Benutzer ber Empfangsger te auf denen eine entsprechende Software installiert ist DVB T S gnale werden ber gew hnliche Antennen von Set Top Boxen empfangen verarbeitet und auf dem Fernseher pr sentiert Bei dem bertragenen Datenstrom handelt es sich um einen MPEG 2 Transport Stream MPEG 2 TS Da die Daten in komprimierter Form MPEG 2 versendet werden kann ein solcher Datenstrom bis zu vier Fernsehprogramme enthalten vgl frisch S 2 Dies stellt einen erheblichen Vorteil zur analogen Fernseh bertragung dar bei der pro Frequenz lediglich ein Programm gesendet werden kann Neben den audio visuellen Inhalten sind in jedem Stream u a Service Informationen DVB SI enthalten die in Form von Tabellen den Aufbau und Inhalt des jeweiligen Streams beschreiben Diese Informationen bilden die Grundlage f r den Teletext und den so genannten Electronic Program Guide EPG vgl digi S 15 78 Der EPG stellt eine Programmzeitschrift in elektronisc
118. menten und Skins getestet werden Das Testergebnis f r den Startscreen ist in Abbildung 31 zu sehen Das Ziel der Testperson war es dabei die Titelzeile den Schlie en Button und das FHTW Logo in ihrer H he zu vergr ern den Hintergrund des Formulares blau einzuf rben sowie die Plug In Buttons zu verkleinern Implementierung Seite 82 Ge Pocket PC 2003 Second Edition Emulator Hilfe T Systems Mobile Services Abbildung 31 Screenshot des Startbildschirms mit TestUserSkin fehlerhaft Beim Vergleich mit dem zugeh rigen MyXaml Dokument fiel auf dass die Gr e der Titelzeile anscheinend unver ndert geblieben ist w hrend die gleiche H hen nderung beim Schlie en Button bernommen wurde Die einzelnen Buttons zur Repr sentation der Plug Ins besitzen die im Skin angegebene H he behalten jedoch weiterhin die im Programmcode berechnete Position unabh ngig von dem_neuen Wert der Button H he Die vom Tester gew hlte Hintergrundfarbe des StartForms wurde problemlos bernommen Das FHTW Logo ist nicht mehr zu sehen da die Titelzeileaufgrund der gr eren H he diesen Bereich verdeckt Um das zu vermeiden h tte dem Logo eine andere Position zugewiesen werden m ssen Die Auswirkungen des TestUserSkin auf das Cl ientMainForm das TVZapPluglIn und das InfoPanel sind mm n chsten Screenshot zu sehen In diesem Fall sollte die Hintergrundfarbe des Formulares und des InfoPanels blau sein die H he der Titelzeile und d
119. n Das def Pr fix bewirkt dass dieser Name zur _Definitionsliste des Parsers hinzugef gt wird und somit das Formular im zugeh rigen Code ber die Methode GetReference Objektname identifiziert werden kann Existiert ein Formular bereits und wurde der Definitionsliste hinzugef gt so kann dieses im MyXaml Dokument per ref Name anhand des jeweiligen Namens identifiziert und dem betreffenden Formular z B ein Stil zugewiesen werden Wie in XAML werden Events in Form von Zeichenketten als Attribute angebunden Wird mit Styles gearbeitet k nnen diese nachfolgend definiert Abb 9 Zeile 6 oder ein externes Stylesheet ber den TneLude Tag eingebunden werden Im Anschluss daran werden alle zum Formular geh rigen Steuerelemente beschrieben und mit Hilfe der umschlie enden Controls Tags dem Formular hinzugef gt Steuerelemente k nnen ebenso w e Formulare definiert bzw referenziert Eigenschaften ber Attribute gesetzt und die Ereignisse festgelegt werden Die Zuweisung von Styles erfolgt mit Hilfe des MxSt yle Attributes wobenals Wert der Name des Stils in geschweiften Klammern bergeben wird Abb 9 Zeile 12 In Zeile 14 wird eine externe Buttondefinition Abb 10 eingebunden Die Zeichenkette postfix wird dabei mit dem Wert des Postfix Attributes ersetzt om de jeweiligen Komponenten unterscheiden zu k nnen l lt xml version 1 0 encoding utf 8 gt 2 lt MyXaml xml lang en US 3 xmlns def Definition xmlns
120. n Interaktionselemente dynamischer auf den benutzerdefinierten Angaben im Skin bas erend umgesetzt werden Weiterhin sollte die Funktionalit t der Style Eigenschaft des MyXaml Parsers dahingehend modifiziert werden dass diese die Zuweisung von Bildern an die jeweiligen Interaktionselemente unterst tzt F r das Branding durch TSI Mitarbeiter w re ein Werkzeug zur Erstellung von Skins im WYSIWYG Modus f r eine einfachere Anpassung der GUI vorteilhaft da w hrend der Ver nderung der Stildefinitionen direkt die Auswirkungen auf d e Darstellung der Elemente zu sehen sind Dieses externe Werkzeug k nnte auch die Zuweisung der erstellten Stylesheets und Skins bernehmen Das Hauptaugenmerk bei einer erneuten Modifikation des ESG Client sollte jedoch auf der Verbesserung der Ablaufgeschwindigkeit w hrend der allt glichen Benutzung durch die Endkunden liegen um wieder die Performanz der urspr nglichen Version zu erzielen Dazu m sste zun chst eine Reihe von Tests durchgef hrt werden um herauszufinden ob lediglich der Emulator zu langsam ist oder aber das Plug In Konzept bzw eventuell sogar der XML bas erte L sungsansatz verworfen werden muss Zusammenfassend l sst sich sagen dass das Ziel der vorliegenden Arbeit erreicht und s mtliche Anforderungen wenn auch teilweise nicht optimal erf llt werden konnten Die erwartete Skinningf higkeit wurde realisiert sowie durch einen Praxistest demonstriert Das Branding durch eine
121. n R XML kurz amp gut K ln O Reilly Verlag 2000 ISBN 3 89721 219 6 Anhang Seite 111 H CD ROM Auf der beigef gten CD ROM befinden sich die folgenden Inhalte Diplomarbeit als PDF Dokument Programmcode des modifizierten ESG Client Technische Dokumentation des modifizierten ESG Client Benutzerhandbuch inklusive Installationsbeschreibung Anleitung zur Erstellung benutzerdefinierter Stylesheets undSkins Programmcode des urspr nglichen ESG Client inklusive der verwendeten Version des OpenNETCF SmartDeviceFrameworks Die CD ROM verf gt ber eine Autostart Funktion und erm glicht somit einen problemlosen Zugriff auf die einzelnen Inhalte ber einen Men bildschirm Anhang Seite 112 I Danksagung F r die Betreuung w hrend der Bearbeitung der vorliegenden Diplomarbeit bedanke ich mich recht herzlich be Herrn Prof Thomas Bremer Weiterhin gilt mein Dank den ehemaligen Teammitgliedern des DVB H Projektesydie mir m Rahmen dieser Arbeit bereitwillig zahlreiche Fragen zur Programmierung der zugrunde liegenden Anwendung beantwortet haben Meinen Dank m chte ich ebenso der freiwilligen Testperson sowie den Korrekturlesern dieser Arbeit aussprechen F r die seelische und moralische Unterst tzung w hrend der Erstellungsphase dieser Arbeit bedanke ich mich vor allem bei meinem Freund und mener Familie sowie einigen guten Freunden Anhang Seite 113 J Eigenst ndigkeitserkl rung Hiermit
122. n S mtliche Applikationslogik Einleitung Seite 3 kann in Form einer beliebigen zur Entwicklung f r de Pocket PC Plattform geeigneten Programmiersprache vorliegen Das Ziel dieser Diplomarbeit besteht darin die Definition der grafischen Benutzungsschnittstelle des prototypischen ESG Client in die XML basierte Sprache MyXaml zu berf hren und unter Verwendung von Skins die Darstellung der sichtbaren Elemente der Anwendung benutzerdefiniert austauschbar zu machen so dass ein Branding d h eine Anpassung in der Gestaltung der Elemente an das Corporate Design f r verschiedene Firmen m glich ist Lauff hig soll die modifizierte Anwendung in erster Linie auf der Pocket PC Plattform sein Weiterhin soll ein einfaches Werkzeug entwickelt werden mit dessen Hilfe die erreichte individuelle Anpassungsf higkeit des ESG Client getestet und demonstriert werden kann Die einzelnen Kapitel der vorliegenden Diplomarbeit werden m Folgenden kurz vorgestellt Kapitel 2 Hintergrund Zun chst werden die bestehende Anwendung und das Projekt vorgestellt in dessen Rahmen der zu modifizierende ESG Client Prototyp entstand Weiterhin wird auf technische Vorgaben eingegangen die aus dem Projekt resultieren und m Rahmen dieser Arbeit ebenfalls G ltigkeit besitzen Kapitel 3 Grundlagen In diesem Kapitel soll n her auf die in dieser Arbeit angewendeten Technologien eingegangen werden Zun chst wird die verwendete Terminologie erk
123. n TT MxDatarowModel TT MxOpenfileDialog H MxRadio utton d E MxStylelustomProperty InfoPanel TT NullModel lt lt Package gt gt ER TT PropertyStyle BE TT PropertyStylebadel TT MyMessageBox H Style TT Pinfofenster H SubFormCustomProperty Abbildung 24 Package Diagramm des modifizierten ESG Client Entwurf Der ESG Client ruft ber die Schnittstelle IESGPlugIn das TVZapPlugIn auf Dieses bindet in Zukunft das PInfofenster in Form der Komponente InfoPanel ein Beide verwenden Re Design Seite 62 den modifizierten ImageButton Neu hinzu gekommen sind das MyXaml Package und die zugeh rigen Packages DotNetl_l und Extensions Das Zusammenspiel dieser drei Komponenten erm glicht die Instantiierung der MyXaml Beschreibungen der GUI Elemente sowie die Verwendung von Stilattributen Um die Skinningf higkeit der Anwendung testen zu k nnen welche mit den zuvor genannten Modifikationen erzielt werden soll ist es notwendig zus tzlich ein simples Skinning Feature zu entwickeln mit dessen Hilfe die Anpassung der grafischen Benutzungsschnittstelle des ESG Client schnell und einfach durchgef hrt werden kann Der Entwurf dieser Funktionalit t ist Gegenstand des n chsten Abschunittes 5 1 5 Entwurf des Skinning Features Mit Hilfe des Skinning Features soll nach der Modifikation des ESG Client getestet und demonstriert werden inwieweit die Umsetzung der angestrebten Skinningf higkeit realisiert werden konnte
124. n WWW Dokument Stand 28 06 2004 Internet http www myxaml com wiki ow asp Introduction Zugriff 22 06 2005 17 05 Uhr net Wikipedia Autor 2005 NET Wikipedia WWW Dokument Stand 25 06 2005 Internet http de wikipedia org wiki NET Zugriff 28 06 2005 00 20 Uhr netcf Microsoft Corporation 2005 NET Compact Framework WWW Dokument Stand 2005 Internet http msdn microsoft com library deu default asp url library DEU dv_evtuv html etconnet compactframework asp Zugriff 24 05 2005 12 24 Uhr pars Wikipedia Autor 2005 Parser Wikipedia WWW Dokument Stand 08 06 2005 Internet http de wikipedia org wiki Parser Zugriff 28 06 2005 00 10 Uhr ppc Wikipedia Autor 2005 Microsoft Pocket PC Wikipedia WWW Dokument Stand 14 06 2005 Internet http de wikipedia org wiki Microsoft_Pocket_PC Zugriff 22 06 2005 17 18 Uhr refl Microsoft Corporation 2005 Ermitteln von Typinformationen zur Laufzeit WWW Dokument Stand 2005 Internet http msdn microsoft com library deu default asp url liprary DEU cpguide html cpcondisco veringtypeinformationatruntime asp Zugriff 06 06 2005 22 06 Uhr richter Richter J Microsoft NET Framework Programmierung Unterschlei heim Mircosoft Press Deutschland 2002 ISBN 3 86063 650 2 skin Wikipedia Autor 2005 Skin Computer Wikipedia WWW Dokument Stand 14 06 2005 Internet http de wikipedia org wiki Skin Compute
125. n um alle verwendeten Steuerelemente dentifizieren zu k nnen Die entsprechend bearbeiteten Screenshots s nd m Anhang A zu finden Auf Basis der entworfenen Klassenstruktur soll nachfolgend die zu real sierende Funktionalit t der zuk nftigen Anwendung erl utert werden 5 3 Funktionalit t Die bereits bestehende Funktionsweise des ESG Client soll hinsichtlich der Bedienung der Anwendung unver ndert erhalten bleiben und daher an dieser Stelle kurz beschrieben werden Beim Start der Anwendung wird der Startbildschirm gezeigt der die verf gbaren Plug Ins in Form von Buttons repr sentiert Beim Klick auf einen Button wird das Plug In in das im Hintergrund bereits ge ffnete ClientMainForm geladen und dieses angezeigt Der Startbildschirm wird dabei vor bergehend ausgeblendet Der Benutzer kann in Interaktion mit der Anwendung die vom Plug In bereitgestellten Funktionen benutzen und somit alle verf gbaren TV Services bersichtlich in einer Liste angezeigt bekommen die Detail informationen zu einem ausgew hlten Service einsehen sowie den ausgew hlten Service kaufen oder n einer externen Anwendung starten Beim Schlie en des ClientMainForms wird der Startbildschirm erneut eingeblendet um ein versehentliches Verlassen der Anwendung zu Re Design Seite 65 verhindern Beim Druck des Schlie en Buttons auf dem Startbildschirm wird der ESG Client endg ltig beendet Um diese Funktionsweise zu erhalten soll soweit w
126. n Steuerelementen werden alle statischen Steuerelemente direkt im Programmcode erzeugt zur Definitionsliste des Parsers hinzugef gt und von diesem mit den im MyXaml Dokument beschriebenen Eigenschaften Anittalisiert Um die dynamisch erzeugten Button Elemente in das MyXaml Dokument einf gen zu K nnen ist im Dokument ein Platzhalter Text enthalten Das Dokument wird vollst ndig als eine Zeichenkette eingelesen der entsprechende Platzhalter Text gegen den String von dynamisch erzeugten Button Elementen ersetzt und der Inhalt des Dokumentes vollst ndig gegen die ver nderte Zeichenkette ausgetauscht Das modifizierte Dokument wird beim Start der Anwendung unter Verwendung der Methode LoadForm des Parsers eingelesen de zu den Tags geh renden Klassen instantiiert und das Formular schlie lich angezeigt Die Methode LoadForm wird an dieser Stelle folgenderma en verwendet LoadForm Pfad zum MyXaml D kument NameDesFormulares Ziel Parent Form this parser LoadFotrm myxamlfile clientMainForm this null Der LoadForm Methode wmd als Parameter neben dem Pfad zum MyXaml Dokument gespeichert in der Variable myxamlfile ebenso als Name des Formulares die Zeichenkette clientMainFosm bergeben Als Ziel wird die Klasse LoadESGClient selbst daher an dieser Stelle this angegeben und somit eine Instanz der Klasse erzeugt Das resultierende Formular ist keinem Parent Objekt zugeordnet Als Ergebnis liefert der Parser ein Objekt vom
127. n TSI Mitarbeiter mit grundlegenden Programmierkenntnissen siehe 4 2 sollte daher problemlos m glich sein Die gew hlte XML bas erte L sung MyXaml eignete sich sehr gut zur Umsetzung der benutzerdefinierten Anpassbarkeit des ESG Client Die resultierende Anwendung ist weiterhin auf der Plattform Pocket PC lauff hig allerdings aufgrund der Performanz Kaum ooch f r die allt gliche Benutzung durch Endkunden geeignet 28 Abk rzung f r What You See Is What You Get Anhang Seite 94 Anhang A Stilzuweisungen zu 5 2 Zuweisungen individueller Stile an die einzelnen GUI Elemente des ESG Client De Pocket PC 2003 Second Edition Titel Exit Button ESGStartPicTitleBarStyle ESGStartBtnExitStyle 1 n FHTW Logo j d Plug In Buttons ESGStartPicFHTWLogoStyle ESGStartBtnStyle Abbildung 35 Zuweisung von Stilen an die GUI Elemente des Startscreens be Pocket PC 2003 Second Edition Emulator Hilfe Titel ESGPicTitleBarStyle Be Lokalzeit Exit Button Grenn ESGBtnExitStyle Genre News and Current Affairs Daily News Overview with Harald Tableiste P Hollenoacn ESGBtnTabStyle Parental Adwise No Restriction FHT W Logo Toro ESGPicFHTWLogoStyle PlugIn Panel ESGContentPanelStyle Abbildung 36 Zuweisung von Stilen an die GUI Elemente des ClientMainForms Anhang Seite 95 Typ Icon Bezahlstatus Icon Titel pictBoxLogoStyle pictBoxStatusStyle IHeaderStyle TVZapPlug In Panel Ep Pocket PL 2003 Secon
128. n besitzt n der aktuellen Version keinen eigenen Namensraum und musshaufgrund dessen zur Instantiierung durch den MyXaml Parser modifiziert werden Weiterhin m ssen Ver nderungen am Aufbau der Klasse ImageButton vorgenommen werden da gegenw rtig die ben tigten Buttons in den zuvor analys erten Klassen MyPanel und PInfofenster ausschlie lich mittels Konstruktoren erzeugt werden k nnen die eine Parameterliste ben tigen Es ist zwar ein parameterloser Konstruktor vorhanden jedoch kann Analyse Seite 47 ein ImageButton der unter Verwendung dieses Konstruktors erzeugt wird nicht mit der gleichen Funktionalit t verwendet werden Es kann beispielsweise kein 2D Fokus Index zur Navigation zwischen verschiedenen ImageButtons manuell gesetzt werden wie er im PInfofenster verwender wd Ebenso ist es bisher nicht m glich selbst zu bestimmen ob ein ImageButton fokussierbar ist oder nicht In der Klasse MyPanel wird beispielsweise ein nicht fokussierbarer Button ben tigt wird w hrend die Klasse PInfofenster einen fokussierbaren Image Button verlangt Daher m ssen in der modifizierten Version des ESG Client ein leerer Konstruktor eine Methode zum Setzen des Fokus Index sowie Getter und Setter zum Abrufen bzw Setzen der Fokussierbarkeit zur Verf gung gestellt werden Die Klasse ButtonResources wird n cht mehr ben tigt da die Bilder direkt in der MyXaml Beschreibung ber die entsprechenden Setter als Pfadangaben gesetzt werden k nnen
129. n eines neuen Stylesheet Dokumentes UC 01 Hinzuf gen eines neuen Stylesheet Dokumentes Zusammenfassung Anlegen eines neuen MyXaml Stylesheet Dokumentes Akteur TSI Mitarbeiter Bedingung Ablauf Erstellen eines leeren Dokumentes Einf gen einer XML Deklaration Abspeichern des XML Dokumentes 4 2 3 Einf gen eines MyXaml Elementes 4 5 Fortfahren mit UC 02 Alternative Bedingung Es ist bereits ein Stylesheet Dokument vorhanden Alternativer Ablauf 1 Erstellen einer Kopie der vorhandenen Datei 2 Umbenennen der Kopie 3 siehe UC 02 oder UCG 03 4 siehe UC 05 Notizen und Fragen e Hinweise zum Erstellen eines neuen Stylesheet Dokumentes sind im Benutzerhandbuch der modifizierten Anwendung zu finden e Im alternativen Verlauf sind keinerlei Programmierkenntnisse erforderlich Tabelle 3 Anwendungsfall 2 Hinzuf gen eines neuen Skins UC 02 Hinzuf gen eines neuen Skins Zusammenfassung Beschreibung einer neuen Sammlung von Stilattributen Akteur TSI Mitarbeiter Bedingung UC 01 Ablauf ffnen des Stylesheet Dokumentes Erzeugen eines MxComponent Elementes Definieren der Stile A N gt Speichern des Dokumentes 5 Schlie en des Dokumentes Alternative Bedingung Ein Stylesheet Dokument mit mindestens einem Skin ist bereits vorhanden Analyse Seite 51 UC 02 Hinzuf gen eines neuen Skins Alter
130. n spezifischen Eventhandler Somit mussten alle in der ImageButton Klasse erstellten Eventhandler entfernt und f r alle Events der Implementierung Seite 80 Standard Eventhandler von NET als Delegate engl f r Verweistyp verwendet werden Fehlende Erl uterung des Parsers Ein weiteres Problem das auf die unzureichende Dokumentation des MyXaml Paketes zur ckzuf hren ist trat bei der Erstellung der Plug Ins auf Es sollte wie um urspr nglichen ESG Client lediglich ein Pane1l Objekt aus einer MyXaml Beschreibung erzeugt werden Alle Beispiele in der Dokumentation verwendeten jedoch Formulare Es gab keinen Hinweis darauf ob es m glich war einzelne Objekte zu instantiieren Am Parser Objekt konnten verschiedene Methoden ausgef hrt werden f r die es allerdings keinerler Erkl rung zu deren Bedeutung und Funktionsweise gab Die Methode LoadObject schien anstelle der Methode LoadForm in Frage zu kommen der Aufbau des ben tigten Dokumentes war jedoch unklar Durch Ausprobieren stellte sich daraufhin heraus dass es ausreichend et en typisches MyXaml Dokument zu erstellen und direkt nach der XML Deklaration und dem MyXaml Element anstelle eines Formulares das ben tigte Panel Element einzuf gen Im Gegensatz zur Instantilerung eines Formulares mittels der Methode LoadForm musste jedoch das verwendete Stylesheet innerhalb des Controls Elementes eingebunden werden Der Grund daf r ist weiterhin unklar Im Formular kann es direkt n
131. nativer Ablauf 1 ffnen des Stylesheet Dokumentes 2 Kopieren eines vorhandenen MxComponent Elementes inklusive aller darin befindlichen Stildefinitionen 3 Einf gen des MxComponent Elementes 4 Schrittweise Modifizieren der Stildefinitionen 5 Speichern des Dokumentes 6 Schlie en des Dokumentes Notizen und Fragen e Zur Definition der Stilattribute steht eine Skinning Anleitung zur Verf gung in der alle Steuerelemente deren Eigenschaften und die zugeh rigen m glichen Werte aufgelistet sind e Im alternativen Verlauf sind keinerlei Programmierkenntnisse erforderlich Tabelle 4 Anwendungsfall 3 Modifizieren eines Skins UC 03 Modifizieren eines Skins Zusammenfassung Ver ndern der Stilattribute eines vorhandenen Skins durch Hinzuf gen bzw Entfernen von Stilattributen oder Andern von Attributwerten Akteur TSI Mitarbeiter Bedingung UC 02 Ablauf 1 ffnen des Stylesheet Dokumentes 2 Ausw hlen des zu modifizierenden Skins 3 Ver ndern der Stildefinition 4 Speichern des Dokumentes Alternative Bedingung Alternativer Ablauf Notizen und Fragen Zur Definition der Stilattribute steht eine Skinning Anleitung zur Verf gung in der alle Steuerelemente deren Eigenschaften und die zugeh rigen m glichen Werte aufgelistet sind Tabelle 5 Anwendungsfall 4 Zuweisen eines Stylesheet Dokumentes UC 04 Zuweisen eines Stylesheet Dokumentes
132. nden selbst um den Spa m Umgang mit der Anwendung zu gew hrleisten Dieser Forderung nach individueller Anpassbarkeit des bestehenden prototypischen ESG Client wird in der vorliegenden Diplomarbeit nachgegangen Dazu soll u a die vollst ndig in der Programmiersprache C Einleitung Seite 2 implementierte Anwendung in zwei Bereiche die Definition der Ansicht und die zugeh rige Programmlogik unterteilt werden Ein zunehmend verwendeter L sungsansatz zur Realisierung einer solchen Trennung der Darstellungsebene von der unterliegenden Applikationslogik ist die Beschreibung der grafischen Benutzungsschnittstelle GUI Graphical User Interface mittels Textauszeichnung engl Markup auf Basis der Extensible Markup Language XML Das bedeutet dass die Definition der sichtbaren Bestandteile der Anwendung anstelle von Programmcode in Form von textuellen Elementen in einem separaten Dokument vorliegt Dieses XML Dokument wird von einem Programm einem so genannten Parser gelesen d e darin enthaltenen Informationen verarbeitet und die ben tigten Objekte erzeugt Microsoft implementiert dieses Konzept vollst ndig m kommenden Betriebssystem Windows Longhorn durch Verwendung der neu entwickelten Auszeichnungssprache XAML Extensible Application Markup Language Ein XML basierter L sungsansatz erm glicht eine Verwendung von Skins engl f r Stilsammlungen die u a Farben und Bilder definieren wie sie bereits bekann
133. ng B befinden Alle ben tigten Bilder und Stylesheets sowie die GUI Beschreibungen f r das ClientMainForm und das StartForm m ssen im Visual Studio Projekt ESGClient als Inhalt eingebunden und auf dem Endger t im Ordner Program Files ESGClient abgelegt werden Bei der Weitergabe des Projektes an den Emulator geschieht dies automatisch Die GUI Beschreibungen der Plug Ins und des InfoPanels werden von diesen Komponenten als eingebettete Ressourcen selbst bereitgestellt und lediglich die Pfade zu den ben tigten Bildern angegeben Alle zu verwendenden Stylesheets m ssen mit der Datei Endung 5 ste abgespeichert sein und Skins in Form von MxComponent Elementen enthalten damit mit Hilfe des Skinning Features ein einfaches Branding durchf hrbar ist W hrend der Implementierungsphase traten zahlreiche Probleme auf Deren Erl uterung sowie die Benennung der Gr nde f r deren Auftreten folgen im n chsten Kapitel Implementierung Seite 77 6 2 Problembeschreibungen Bereits anhand einiger Implementierungsversuche vor der eigentlichen Umsetzung des ESG Client war zu erkennen dass die Verwendung der MyXaml Technologie eine lange Einarbeitungsphase erfordern w rde Der Grund daf r war eine nunzureichende Dokumentation des MyXaml Paketes Unzureichende bzw fehlende Dokumentation Da es sich bei MyXaml um eine OpenSource L sung handelt 1st due Dokumentation in Verbindung mit einem simplen Tutorial in Form eines Wikis
134. ns an die ver nderte Schnittstelle wurde zuerst vorgenommen Dazu wurde die nicht mehr ben tigte Methode getSmallIcon aus der Implementierung Seite 70 Klasse TVZapping entfernt und de R ckgabetypen der beiden anderen Methoden zu String Arrays ge ndert Die in diesen Methoden verwendete Ladefunktion wurde gegen de Angabe der zu den Bildern geh renden Pfadangaben ausgetauscht Alle Bilder und sonstige Dokumente und Dateien werden auf dem Emulator automatisch im Ordner Program Files ESGClient abgelegt Damit es m glich ist die Bilder anhand der entsprechenden Pfadangaben vom Cl ent laden zu lassen m ssen diese in der Projektmappe ESGClient als Inhalt eingebunden werden Somit werden diese bei der Weitergabe der Amwendung an den Emulator auf das Ger t kopiert und der aufrufende Client kann die Bilder anhand der erhaltenen Pfade im zuvor genannten Ordner vorfinden und auf diese zugreifen Es ist nicht mehr n tig dass das Plug In die Bilder selbst in Form von eingebetteten Ressourcen bereitstellt Die im TVZapPlugIn Projekt enthaltenen Bildressourcen k nnen daher entfernt werden Im n chsten Schritt wurde die GUI Beschreibung f r das Panel erzeugt Diese beschr nkte sich auf das MyXaml Element die Beschreibung und Stilzuweisung des Panels sowie das Einbinden des Stylesheet Dokumentes Anstelle der Interaktionselemente wurde in das MyXaml Dokument jedoch lediglich ein Platzh lter Text eingef gt da diese dynamisch in Abh n
135. nt Daily News Overview with Haralc P Hollenbach Parental Advise No Free of Charge Abbildung 34 ClientMainForm TVZapPlugIn und InfoPanel mit TestUserSkin An der genannten Problematik der Bestimmung von Gr en und Positionen der Steuerelemente ist erkennbar dass zum einen die Programmierung stellenweise nicht dynamisch genug ist und sich zum anderen die Skin Definition ohne eine gleichzeitige Ans chtsm glichkeit in diesem Zusammenhang alszwkompliziert erweist Das Problem innerhalb der Programmierung besteht darin dass in der urspr nglichen Version alle Gr en festgelegt und anhand dieser konstanten Gr en u a die m gliche Anzahl dynamisch erzeugter Buttons sowie deren Position berechnet wurde In einer verbesserten Version des skinningf higen ESG Clienb m ssten daher alle Berechnungen auf Basis der im Stylesheet angegebenen Werte erfolgen Weiterhin hat die Testperson detailliertere Erkl rungen zur Bedeutung der einzelnen Eigenschaften der Steuerelemente in der Skinning Anleitung vermisst sowie die Reihenfolge der Anordnung und unzureichende Abgrenzungen zwischen den Stildefinitionen bem ngelt Diese Kritik sollte ebenso in einer neuen Version der Anwendung und der Skinning Anleitung beachtet werden Die w hrend der Testphase vorgenommenen Ver nderungen haben keinen weiteren Einfluss auf die zuvor dargestellte Klassenstruktur des modifizierten ESG Client genommen Daher kann an dieser Stelle auf eine neue Dars
136. ntentParelsting sinang Farnel Abbildung 40 Klassendiagramm des modifizierten ESGPlugIn Packages Anhang Seite 97 cd TYZaprlugilr System Mingos oms Panel E SGfluow ESG Muvbanel TYZapping panelParser du am Farer TYvZappingl IsadFile string getFlugInbescriptiond string amanButtons ArrayList getTablcond string alltemsList ArrayList getBigleond stringi alCurentideoltems ArrayList plinto InfoPanel Plnfofenster skin string stylesheet string x int 0 gett ontentbaneltstng string Panel getbluglnhlame string iyFanelistring string sreateFanellontrola Stream string create List Arravlist int string MyFanel_Faintobject FaintEwent rgs woid HyFanel_Focusfobject EventArgs woid amanButon _Gotfocusfobject EventArgs void armanButon_Clickedloabject ButtonClickEwent rgs void binFrowvider_Fotfocuslobjecth EventArgs void binProwider_Clicfobject EventArgs woid changerocusfstring woid updateltemLishstring int ArrayList getltemzint int ArrayList woid shortenStringletring string property focuszedButtonl int Abbildung 41 Klassendiagramm des modifizierten TVZapPlugIn Packages System Wipcdo wes Zomme Zoom Mvhdezsaoe Box cd InfoPanel Systen Wingo wes Foos anel Pirfoferster Ipbarer MyXkaml Parser curmentitem Item Header Label IText Label lAirTime Label IFaywment Label Genre Label lAdvwise Label logo FictureBox status PictureB
137. ntierung stellt ein generisches Werkzeug zur Instantiierung von Klassen aus beliebigen Namensr umen dar Es wurde entwickelt zur Beschreibung von herk mmlichen Windows Forms Steuerelementen erm glicht zus tzlich aber auch die Verwendung von Komponenten von Drittanbietern und unterst tzt somit auch selbst erstellte Steuerelemente sowie die kommenden Avalon Komponenten Die Beschreibung der GUI erfolgt mittels XAML hnlichem Markup Da es sich bei dieser Implementierung um ein OpenSource Projekt handelt ist diese frei verf gbar und kann m Erfahrungsaustausch mit anderen Anwendern entsprechend der erforderlichen Funktionalit t weiter entwickelt werden Di Verwendung von MyXaml ist nicht an die Entwicklungsumgebung Visual Studio NET 2003 gebunden MyXaml ist in zwei Versionen verf gbar wobei zur Entwicklung von Software f r NET CF keine Installation des MyXaml Paketes erforderlich ist sondern lediglich eine Klassenbibliothek bei der Entwicklung in das Projekt eingebunden werden muss Die Modifikation des bestehenden ESG Client soll daher mit Hilfe der MyXaml Technologie realisiert werden Die im Folgenden erl uterten Vorteile begr nden die Auswahl dieses L sungsansatzes MyXaml unterst tzt die Entwicklung von Anwendungen f r NET CF Zur Entwicklung f r NEI CF ist im Gegensatz zu Xamlon keine Installation der Software notwendig Es muss lediglich eine Klassenbibliothek bei der Programmierung eingebunden werden Da diese j
138. ogrammcode ber Pfadangaben zugewiesen Unzureichende Generizit t des Parsers Im Anschluss an d e erw hnte Problematik der Bildanzeige ergab s ch das Problem dass beim Anklicken eines ImageButtons eine Fehlermeldung ausgegeben und das Programm daraufhin beendet wurde Beim Debuggen der Anwendung konnte lediglich herausgefunden werden an welcher Stelle der Fehler auftrat der Grund l e sich jedoch auch nach l ngerer Suche nicht feststellen An der ermittelten Stelle wurde lediglich ein Eventhandler angebunden wurde Wie sich in Kommunikation mit dem Entwickler der MyXamiICF Version herausstellte war die Instantiierung des Eventhandlers im MyXaml Parser nicht generisch genug um den ButtonClickedEventh andler der ImageButton Komponente zu verwenden In der K rze der Zeit konnte von Seiten des MyXamlICF Autors nur eine vor bergehende Notl sung implementiert werden Es wurde wieder eine neue Version von MyXamiCE erzeugt Mit Hilfe dieser zweiten neuen Version und einer minimalen nderung im Programmcode des ImageButtons konnte dieser problemlos vom Parser instantiiert und das zugeh rige ButtonClicked Event ausgef hrt werden Zuvor wurde beim Dr cken des Image Buttons das ButtonClicked Event durch den Button spezifischen Eventhandler ButtonClickedEventhandler aufgerufen Da in MyXaml beim Instantiieren der Klassen hinter den Tags jeweils der System EventHandler welchen NET bereitstellt verwendet wird gab es Konflikte mt dem Butto
139. ogrammcode in einer Assembly code behind Jeder XAML Tag entspricht einer NEI Framework Klasse und stellt Methoden Eigenschaften und Ereignisse zur Verf gung Zur Laufzeit wird das Steuerelement hinter jedem Tag instantiiert und erh lt einen Bildschirmbereich in dem die Ausgabe gerendert wird vgl long2 Ebenso wie XML Dokumente m ssen auch XAML Seiten wohlgeformt sein und folgen daher den gleichen Regeln vgl long4 Eine einfache XAML Seite und der dazugeh rige C Code sind mm Abbildung 7 dargestellt Die Instantiierung der XAML Elemente durch einen Parser sowie die Wertzuweisung und Anbindung der hervorzurufenden Ereignisse funktioniert folgenderma en vgl xaml Der Namensraum der zugeh rigen Assembly wird auf den XML Namensraum gemappt siehe 1 und 2 in Abb 7 Mit Hilfe von XML Pr fixen wird ermittelt in welchem Namensraum sich die zu instantiierende Klasse befindet siehe 3 Eigenschaften eines erzeugten Objektes werden durch Attribute gesetzt siehe 4 Da jedes Attr but nur Zeichenketten als Werte annehmen kann werden Type Converter benutzt um die Zeichenketten auf andere Typen zu mappen siehe 5 Die Eventanbindung erfolgt ebenso ber Attribute siehe 6 Grundlagen Seite 24 4 7Mapping E XmiNamespace app CirNamespace MyApp Assembly MyApplication gt Canvas xmins app app gt lt app UndoButton Location 10 10 Size 80 25 Text Undo CanUndo false Click OnOK gt l
140. ollen jeweils aus mindestens zwei Dateien zusammengesetzt sein Eine Datei beinhaltet die Beschreibung der GUI in Form von MyXaml Elementen Eine oder mehrere Dateien enthalten die zugeh rigen Klassen und Methoden in Form von C Programmcode Das gemeinsame Stylesheet umfasst ebenfalls in Form von MyXaml Markup die einzelnen Stildefinitionen aller Formulare und deren Steuerelemente Mit Hilfe einer rudiment ren Implementierung eines Skinning Features soll demonstriert werden dass die Verwendung unterschiedlicher Skins m glich ist Dazu sollen verf gbare Stylesheets und dar n definierte Skins angezeigt ausgew hlt und die entsprechenden Stile von der Anwendung bernommen werden k nnen Basierend auf der in diesem Kapitel durchgef hrten Analyse soll im Folgenden ein konkreter Entwurf des neugestalteten ESG Client angefertigt werden Re Design Seite 56 5 Re Design Gegenstand dieses Kapitels ist die Anfertigung eines konkreten Entwurfes zur Modifikation des bestehenden ESG Clients Zun chst soll die Systemarchitektur ader ver nderten Anwendung definiert werden Im Anschluss daran werden Aussagen zumnAufbau der Stylesheets und Skins getroffen sowie eine Zuordnung individueller Stile zu den verwendeten Steuerelementen vorgenommen 5 1 Systemarchitektur Der Entwurf der Systemarchitektur beruht auf den Aussagen die in der vorhergehenden Analyse des bestehenden ESG Client getroffen wurden Die darin angef hrten
141. ox binBuy ImageButton ImageButton btnInfo Image button Image Button btnStart ImageButton ImageButton btn_aray Araylist mmb YyllessageBox progressBar FrogressBarEx buy bool true purchased bool currentButonfocusX byte 2 Cp ist au Araylist nem ArrayList amp inName string styleMName string Finfofenstenltem string string updatelnfolltern woid updatelnfol woid OnPaintPaintEwent rgsi void focusHandlen bject CurzordoveEvent rgs void buttHandlenobject ButtonllickEvent rgs waid passListN awilAraylist woid toNormalTimellong String processGenrelint string progessFAfbyte string getPercentElapsed long long int shawPurchasebetaill woid ves System Windows F orms Button no System Windows F orms Button header Syste m Windows F orms Label description System Windows F orms Label selection System Windows F orms ComboB os curentBoslndex int curentltem Item boxParser Wysaml F arser kinName string strleName string iyblessageBoxrltem string string purchaseBox_Loadlobject System EventArgs void updateBosiItem woid ComboaBoz_SelecstedindexChangedlobject System Ewent rgs void buttaon_Clichobject Ewent rgs void OnFaintFaintEwent rgs void Abbildung 42 Klassendiagramm des InfoPanel Packages Anhang Seite 98 cd Image Button Eventos Image Button Cursor bowe Ewent Args debug bool true direction String image Image
142. pfangenen Testdaten auslesen und Informationen ber das verf gbare Angebot bersichtlich aufbereitet darstellen kann Dieser Prototyp wird gegenw rtig in einem Anschlussprojekt weiter entwickelt und soll im September 2005 auf der Internationalen Funkausstellung in Berlin pr sentiert werden p Pocket PC 2003 Second Edition Emulator Hilfe 1 ProF talk talk talk 23 55 16 57 Genre Show Game show 6 Talkshow about Talkshows 3 7 Parental Advise Recommended Age 12 es LA Click Purchase E A For Details Ed Gi 8 Start aaa raf AE EEN Ven E Pro talk talk 73 55 16 57 Abbildung 2 OnAir Darstellung des ESG Olient Prototypen 1 Content Anbieter 2 Sendezeit 3 Kurzbeschreibung 4 verf gbare Dienste 5 Titel des Dienstes 6 Tableiste 7 Start des Dienstes 8 Hinweis auf Kostenpflicht Ergebnis des Pilot Projektes waren ein prinzipiell funktionst chtiger ESG Client bestehend aus einzelnen Plug Ins f r verschiedene Funktionen sowie eine Zwischenschicht der DVB H Abstraction Layer DVB H AL ber welche der ESG Client mit dem unterliegenden Datenmodell der TSI kommunizieren und die verf gbaren Services auslesen kann Zu den implementierten Funktionen geh ren eine Programm bersicht in verschiedenen Rubriken die M sl ichkeitnder Auflistung aller aktuell angebotenen Dienste in einer OnAir Darstellung siehe Abbildung 2 eine Suche nach best
143. prechend der gegebenen Situation angepasst werden kann Die Endbenutzer Als Zielgruppe kommen ebenso die Endbenutzer des ESG Client in Frage Wie auch in anderen Anwendungen k nnte dem Benutzer de M glichkeit geboten werden die Gestaltung der GUI entsprechend der eigenen Vorlieben selbst zu ver ndern Die Anpassung der grafischen Benutzungsschnittstelle sollte in jedem Fall sowohl von einem erfahrenen Programmierer als auch von einem Screendesigner oder einer sonstigen Person durchgef hrt werden k nnen de zwar grundlegende Kenntnisse im Umgang mit Computern jedoch kaum Programmiererfahrung besitzt Da der ESG Client in erster Linie f r die TSI entwickelt wurde soll ene m Rahmen dieser Arbeit die Zielgruppe darstellen Die Modifikation soll son umgesetzt werden dass mit Hilfe einer ersten rud ment ren Implementierung en einfaches Branding der Anwendung von einem TSI Mitarbeiter mit minimalen Programmierkenntnissen realisiert werden kann Welcher L sungsansatz f r eine solche Modifikation des ESG Client verwendet werden kann wird im Folgenden ermittelt 4 3 Auswahl eines L sungsansatzes Das Ziel dieses Kapitels st es einen L sungsansatz zur Umsetzung der Neugestaltung des ESG Client zu finden Dazu soll zun chst das Thema Skinning genauer betrachtet werden um erste Kriterien zur Auswahl eines L sungsansatzes zu ermitteln Analyse Seite 32 Ein Skin umfasst verschiedene Stile die den einzelnen Elementen einer
144. r Zugriff 24 06 2005 13 31 Uhr sysxml Microsoft Corporation 2005 System Xml Namespace WWW Dokument Stand 2005 Internet http msdn microsoft com library deu default asp url library DEU cpref html frirfsystemxm l asp Zugriff 06 06 2005 22 13 Uhr tag Wikipedia Autor 2005 Tag Informatik Wikipedia WWW Dokument Stand 17 05 2005 Internet http de wikipedia org wiki Tag_ 28Informatik 29 Zugriff 22 06 2005 17 12 Uhr ui Wikipedia Autor 2005 Benutzerschnittstelle Wikipedia WWW Dokument Stand 15 06 2005 Internet http de wikipedia org wiki Benutzerschnittstelle Zugriff 22 06 2005 16 53 Uhr vasters Vasters u a NET Grashkurs Unterschlei heim Microsoft Press Deutschland 2002 ISBN 3 86063 519 0 west Westphal R NEI kompakt Heidelberg Berlin Spektrum Akademischer Verlag 2002 ISBN 3 8274 1185 8 wince1 Wikipedia Autor 2005 Microsoft Pocket PC WWW Dokument Stand 12 05 2005 Internet http de wikipedia org wiki Windows_CE Zugriff 24 05 2005 12 02 Anhang Seite 110 wince2 NCP engineering GmbH unbekannt Windows CE Kompatibilit t WWW Dokument Stand unbekannt Internet http www ncp de deutsch services cekompat infoWCE300 html Zugriff 24 05 2005 12 06 xaml Clifton M 2004 What Is XAML WWW Dokument Stand 2004 Internet http myxaml com whitePapers whatlsXAML htm Zugriff 01 06 20055 11 16 UJhr xml Eckstei
145. r_ dar vgl myxamll und myxaml8 MyXaml ist eine OpenSource Implementierung und kann neben der dynamischen Erzeugung von Benutzungs schnittstellen zur Laufzeit ua auch zur Herstellung von Datenbankverbindungen oder mit Hilfe des zugeh rigen Werkzeuges MxLint zur berpr fung eines XML Dokumentes auf Wohlgeformtheit verwendet werden Weiterhin umfasst MyXaml Werkzeuge wie ein Plug In f r Visual Studio NEI 2003 zur Umwandlung eines im Designer erstellten Formulares in XAMIL hnliches Markup nachfolgend MyXaml Markup genannt einen einfachen Internet browser und kleine Spiele vgl myxaml2 Das MyXaml Paket gibt es bereits f r das NET Framework 1 1 und 2 0 Diese Arbeit konzentriert sich jedoch auf die Adaption des eigentlichen Parsers die f r NEI CF 1 0 verf gbar ist Da NEI CF in seinem Funktionsumfang reduziert ist fehlen auch bei dieser Implementierung einige Funktionen 16 Siehe http www myxaml com Marc Clifton siehe http www marcclifton com Resume tabid 55 Default aspx Grundlagen Seite 26 bzw wurden auf andere Weise umgesetzt die grundlegende Funktionsweise des Parsers ist jedoch gleich Anwendungen werden in MyXaml mit Hilfe einer deklarativen und ener oder mehrerer imperativen reflektionsf higen Sprachen entwickelt vgl myxaml3 und doc Erstere bezeichnet eine Markup Sprache wie z B XAML zur Beschreibung derBenutzungs schnittstelle letztere eine NET kompatible Programmiersprach
146. rderungen an die Anwendung Die sich aus den zuvor behandelten Abschnitten ergebenden Anforderungen an die Neugestaltung der bestehenden Anwendung sollen nachfolgend zusammengefasst werden 4 6 1 Allgemeine Anforderungen Im Rahmen dieser Diplomarbeit sollen die zuvor ausgew hlten Komponenten des ESG Client siehe 4 4 2 soweitwmodifiziert werden dass eine Anpassung der grafischen Benutzungs schnittstelle der Anwendung unter Verwendung von Stylesheets m glich ist Das vorliegende Plug In Konzept wird beibehalten Die Implementierung erfolgt mit Hilfe der Entwicklungsumgebung Visual Studio NEI 2003 sowie der Programmiersprache CH Die resultierende Anwendung soll auf einem Pocket PC 2003 Second Edition lauff hig sein Analyse Seite 53 4 6 2 Anforderungen hinsichtlich der Skinningf higkeit Dieser Abschnitt umfasst alle Ver nderungen die notwendig sind um eine benutzerdefinierte Interfacegestaltung des ESG Client zu erm glichen Die einzelnen Punkte sollen nachfolgend jeweils kurz benannt und erl utert werden Trennung von GUI und Applikationslogik essentiell Die vorliegende Systemarchitektur wird weitestgehend beibehalten Es erfolgt jedoch eine Trennung der Definition der GUI von der zugeh rigen Applikationslogik innerhalb der einzelnen Klassen der ausgew hlten Komponenten XML basierte Beschreibung der GUI Elemente essentiell Die Beschreibung der Elemente der GUI erfolgt mittelsuder XML basierten
147. rderungen erf llendes funktionsf higes jedoch kein optimales Ergebnis erzielt werden konnte sofern eine hnlich geringe Geschwindigkeit des Programmablaufes auf einem richtigen Pocket PC anzunehmen ist Im Rahmen einer Weiterf hrung der vorliegenden Arbeit k nnten die fehlenden Funktionen voraussichtlich problemlos hinzugef gt werden sollten Tests jedoch ergeben dass keine bessere Performanz auf einem richtigen Pocket PC erzielt werden kann so sollte entweder ber die Verwendung einer verbesserten Version von MyXamlCF bzw eines anderen L sungsansatzes nachgedacht oder aber das Plug In Konzept auf eine optimalere Art und Weise implementiert bzw verworfen werden Im nachfolgenden und zugleich letzten Kapitel sollen die wichtigsten Punkte der vorliegenden Arbeit noch einmal kurz zusammengefasst sowie Ideen f r eine m gliche Weiterf hrung genannt werden Zusammenfassung Seite 91 8 Zusammenfassung Gegenstand der vorliegenden Diplomarbeit ist die Problematik der Trennung der grafischen Benutzungsschnittstelle und der unterliegenden Applikationslogik Im Rahmen dieser Arbeit bestand die konkrete Anforderung eine prototypische Implementierung eines ESG Client f r DVB H individuell anpassbar in der Gestaltung der grafischen Benufzungsschnittstelle zu machen um ein Branding der Anwendung f r verschiedene Firmen entsprechend deren Corporate Design zu erm glichen Das Ziel bestand darin diesnotwendige Skinningf higkeit f
148. rm ref Name StartForm MxStyle StartFormStyle gt 9 10 lt Include Sro Stylesheet ComponentName Skin Postfix 1 gt 11 12 lt Controls gt 13 lt PictureBox ref Name TitleBar MxStyle TitleBarStyle gt 14 lt Image gt 15 lt Bitmap File titlebar bmp gt 16 lt Image gt 17 lt PictureBox gt 18 lt opwf ButtonEx ref Name Exit MxStyle ExitStyle Click Exit Click gt 19 lt opwf Backgroundlmage gt 20 lt Bitmap File exit bmp gt 21 lt opwf Backgroundlmage gt 22 lt opwf ButtonEx gt 23 lt Controls gt 24 25 lt Form gt 26 lt MyXaml gt Abbildung 22 Beispiel f r ein MyXaml Dokument zur Beschreibung der StartForm GUl Wie im obigen MyXaml Dokument zu erkennen ist k nnen Komponenten von Drittanbietern problemlos verwendet werden Dabei handelt es sich in Abbildung 22 um einen ButtonEx Zeile 18 der im OpenNETCF SmartDeviceFramework im Namensraum OpenNETCF Windows Forms definiert ist Durch Angabe des entsprechenden Namensraumes sowie der Beschreibung des Buttons mittels der Namen der zugeh rigen Klassen Eigenschaften und Eventh ndler in Form von Elementen und Attributen ist eine Instantiierung durch den MyXaml Parser ohne weiteres m glich Ebenso wie der im Beispiel verwendete ButtonEx soll auch der f r den ESG Client entwickelte ImageButton beschrieben werden k nnen Die dazu notwendigen Modifikationen an der entsprechenden Klasse werden m n chsten Abschnitt be
149. rmationen ermittelt und angezeigt Diese Vorgehensweise sollte n dieser Form erhalten bleiben konnen Sobald ein neues Item bergeben wird sollten jedoch ausschlie lich die angezeigten Werte aktualisiert werden statt w e bisher bei jedem Klick auf den Kaufen Druckschalter eine neue MessageBox zu erzeugen Wie bereits in diesem Kapitel erw hnt verwenden die Klassen MyPanel und PInfofenster Instanzen der Klasse ImageButton Da diese jedoch durch Analyse Seite 46 Konstruktoren mit Parameterlisten erzeugt werden muss dieser hinsichtlich einer Instantiierung durch den MyXaml Parser modifiziert werden Inwieweit Ver nderungen notwendig sind soll im folgenden Abschnitt ermittelt werden 4 4 2 4 ImageButton Die Klasse ImageButton definiert einen Druckschalter der vier verschiedene Zust nde annehmen kann und diese dem Benutzer durch die Anzeige verschiedener Bilder mitteilt Die Bilder k nnen ber die Get und Set Methoden der ImageButton Klasse gesetzt oder in Form eines ButtonResources Objektes bergeben werden sieh amp Abbildung 19 cd ImsgeButtor Conii ech ImageButton Button Resources debug bool true normal Image image Image pushed Image normallmage Image focused Image pushedimage Image active Image focusedlmage Image activelmage Image ButtanResoureeslmage Image Image Image isFushed bool property Normal Image isFocused boal property Pushed Image isActive bool property
150. rray z B einer ArrayList festzulegen Weiterhin wurde die OnPaint Methode um eine berpr fung aller vorhandenen bzw nicht vorhandenen Bilder zur Anzeige der entsprechenden Zust nde eines ImageButtons erweitert Beim Test des TVZapPlugIns wurden Probleme mit der Eventbehandlung beim Anklicken eines ImageButtons festgestellt Aus diesem Grund mussten zus tzlich zu den im Vorfeld analysierten notwendigen Modifikationen an der ImageButton Klasse die Verweistypen der Button spezifischen Events ge ndert werden Die n here Erl uterung dieser Problematik soll im Rahmen der Beschreibung der w hrend der Implementierung aufgetretenen Probleme in Kapitel 6 2 vorgenommen werden Modifikation des PInfofensters und der zugeh rigen MessageBox An diesem Punkt der Implementierungsphase bestand bereits eine voll funktionst chtige skinningf hige Anwendung ber den Startbildschirm konnte ein Plug In ausgew hlt und im ClientMainForm angezeigt werden Es fehlte lediglich die Umsetzung des Informations fensters zur vollst ndigen Skinningf higkeit des ESG Client Im Hinblick auf die Umsetzung wurden zun chst die entsprechenden Klassen in ein separates Projekt ausgelagert sowie dienresultierende Klassenbibliothek InfoPanel dll ber einen Verweis vom TVZapPlugin referenziert Im Plug In mussten daraufhin alle Vorkommen des PInfofensters mit dem neuen Namensraum InfoPanel versehen werden um dieses wie zuvor weiterhin benutzen zu k nnen Z
151. rungen nicht parallel Zur Erstellung des Skins sichtbar sind Aufgrund dieser Testergebnisse wurden sowohl der TestUserSkin als auch die modifizierte Anwendung erneut gepr ft um die aufgetretenen Fehler finden und beseitigen zu k nnen So wurde u a festgestellt dass eine Gr en nderung der Titelzeile nicht m glich war weil vom Tester die Eigenschaft SizeMode f r das Steuerelement PictureBox nicht auf den Wert Stretchlmage gesetzt wurde Diese Eigenschaft legt fest dass das Bild unabh ngig von dessen eigener Gr e auf die Gr e des Steuerelementes gesetzt wird Als auch nach Hinzuf gen dieser Eigenschaft das Bild nicht vergr ert dargestellt wurde lag die Vermutungnahe ndass es sich erneut um eine Eigenschaft handelt die nicht vom MyXaml Parser dekodiert werden konnte Somit wurde die Dekodierung in der Klasse TypeDecoder erg nzt und das Bild letztendlich an die Gr e der PictureBox angepasst Der tats chlich von der Testperson gew nschte Startbildschirm sieht nach der Korrektur im Programm folgenderma en aus Implementierung Seite 84 Se Pocket PC 2003 Second Edition Emulator Hilfe Abbildung 33 Screenshot des Startbildschirms mit TestUserSkin Anschlie end wurde die Zuweisung des jeweils aktuellen Stylesheets und Skins an das ClientMainForm in der Klasse LoadESGClient gepr ft Dabei ist aufgefallen dass noch vor der Zuweisung bereits die alten Werte durch die neuen ersetzt werden Die Namen des zuletzt
152. s Gegenpol zu Sun Microsystems Java eingef hrt wurde und neben einer virtuellen Laufzeitumgebung aus einem Rahmenwerk Framework von Klassenbibliotheken API und Diensten besteht die als Basis f r Eigenentwicklungen dienen Einfach gesprochen handelt es sich also um eine umfangreiche Programmierumgebung die eine neue Generation von Programmen und damit auch der Programmierung einl uten soll Keine der verwendeten Technologien ist v llig neu aber in der Gesamtheit ist NEI eine Innovation Die NET Plattform stellt mit der Common Language Infrastructure CLI eine Basis zur Ausf hrung von Programmen Ode mit unterschiedlichen Programmiersprachen erstellt wurden her Dies wird durch die Verwendung einer objektorientierten virtuellen Maschine und die Framework Class Library FCL einer gemeinsamen Klassenbibliothek erreicht net Assembly siehe Klassenbibliothek Benutzungsschnittstelle Der Teil eines Programms der den Datenaustausch mt dem Benutzer durchf hrt ui Branding hier eine Form von Skinning allerdings mit dem Unterschied dass in diesem Fall nicht der Benutzer das Aussehen der Benutzungsschnittstelle ver ndert sondern eine Anwendung an verschiedene Firmen mit jeweils unterschiedlichem Aussehen verkauft wird Dabei wird der Skin an das Corporate Design u a Logos und Farben der einzelnen Firmen angepasst CH objektorientierte Programmiersprache die vom Softwarehersteller Microsof
153. s Imagebuttons 59 Abbildung 24 Package Diagramm des modifizierten ESG Olient Entwut reenen 61 Abbildung 25 Entwurf eines einfachen Skmnmg Features nennen nennen nennen 62 Abbildung 26 Entwurf eines MyXaml Stylesheet Dokumentes mit einem Gkm een 63 Abbildung 27 Geplante Funktionsweise des modifizierten ESG Client vgl myxam 7 66 Abbildung 28 Screenshobdes implementierten Gkmnmg Features 74 Abbildung 29 Beispiel f r einenineuen Skin des Groartldechms 02er 75 Abbildung 30 Package Diagramm des resultierenden modifizierten EGG Chent 76 Abbildung 31 Screenshot des Startbildschirms mit TestUserSkin fehlerhaft 82 Abbildung 32 ClientMainForm TVZapPlugIn und InfoPanel mit TestUserSkin fehlerhaft 83 Abbildung 33 Screenshot des Startbildschirms mit Tesilleerzkm 84 Abbildung 342ClientMainForm TVZapPluglIn und InfoPanel mit TestUserSkin 85 Abbildung 35 Zuweisung von Stilen an die GUI Elemente des Giartsecreeng nee 94 Abbildung 36 Zuweisung von Stilen an die GUI Elemente des ClientMainForms 94 Abbildung 37 Zuweisung von Stilen an die GUI Elemente des TVZapPluglIns und InfoPanels 95 Abbildung 38 Zuweisung von Stilen an die GUI Elemente der MessageBox des InfoPanels 95 Abbildung 39 Klassendiagramm des modifizierten EGGChentPackages nennen 96 Anhang Seite 104 Abbildung 40
154. s eines Pfeiles verwiesen wird im zeigenden Package ber einen Verweis referenziert Use Beziehung oder von mindestens einer Klasse des Packages ber ein using Statement eingebunden Import Beziehung wird Analyse Seite 37 TvVZapPlugin lt Package gt gt lt lt Package gt gt neo E MyltemList de H ButtonClickEvent rgs dE TT MyMessageBox TT ButtonrResources 8 MyPanel 8 CursorMoveEvent rgs TT MyUpdateditemList TT ImageButton TT Pinfofenster gt gt TT TVvZapping DVBHAL GO lt lt Package gt gt AudioZapPlugin e __ seimport gt gt lt lt Package gt gt ur E Audiotem bn u H Category H AudioZapping en a TT ContentProvider TT MyttemList lt lt Use gt gt E TT DYBHAL E MyMessageBox Ei E Genre E MyPanel TT HierarchicalPath E MyUpdateditemList E TT HierarchyFlattener TT Pinfofenster E item o F PurchaseDetail G ol Leen TT Servicettem ESGClient ESGPlugin lt 4Package gt gt Je lt lt Package gt gt ClientMainF orm 9 IESGPlugln E StartForm ServiceZapPlugin lt lt Package gt gt TT MyltemList TT MyMessageBox e 8 MyPanel ListBoxESG E E MyUpdateditemList TT Pinfofenster 8 ServiceZapping lt lt Import gt gt lt lt Package gt H ListBoxEsG TT Listitem SearchPlugin lt lt Package gt gt 8 Controllnyoker H Search Frminfofenster H SearchPlugin lt lt Package gt gt A Frminfofenster TT MyMessageBox ESGColors lt l
155. schrieben und als MyXaml Dokumente gespeichert werden In der Applikationslogik wiederum werden mit Hilfe von C Anwe sungen Instanzen des MyXaml Parsers erzeugt welche die Verarbeitung dieser Dokumente vornehmen indem die unterliegenden Klassen instantiiert Eigenschaften n tialisiert und Eventhandler angebunden werden Jedem einzelnen Steuerelement wird dabe mittels der Style Eigenschaft von MyXaml eine individuelle Stildefinition zugewiesen Diese Stildefinitionen umfassen abgesehen von essentiellen Bildzuweisungen alle zur Darstellung der Elemente auf dem Bildschirm notwendigen Eigenschaften Dazu z hlen ebenfalls wenn auch eingeschr nkt die als optional gekennzeichneten Eigenschaften Gr e und Position Durch eine Ver nderung der Eigenschaften der entsprechenden Stildefinitionen kann somit die geforderte benutzer definierte Interfacegestaltung der Anwendung erfolgen Die Moditikation des ImageButtons die als zwingend erforderlich eingestuft wurde um de Komponente weiterhin auf die in der urspr nglichen Version verwendete Art und Weise benutzen zu k nnen wurde wie geplant realisiert Die Beschreibung eines Image Buttons mittels Textauszeichnung sowie die automatische Instantiierung der zugeh rigen Klasse durch den MyXaml Parser ist daher problemlos m glich Ergebnisse Seite 87 Durchf hrbarkeit des Skinnings Die geforderte schnelle und einfache Anpassbarkeit der GUI konnte insofern umgesetzt werden dass mitte
156. sen die zugeh rigen Eigenschaften werden m Stylesheet bzw dynamisch im Programmcode definiert Da eg och bei der MessageBox um ein Formular mit benutzerdefinierter Gr e handelt wird zu dessen Instantiierung wieder die Methode LoadForm verwendet Beim Laden des Formulares wird jeweils das oberste Element der enthaltenen ListBox selektiert und fokussiert Zur Uberaabe der aktuellen Werte wurde eine updateBox Methode erg nzt die als Parameter das aktuelle Item entgegen nimmt und daraufhin die Eintr ge der ListBox und den Text des Informations Labels anpasst Umsetzung der fehlenden Zapping Plug Ins Aufgrund der hnlichkeit aller Zapping Plug Ins wurden zuletzt per Copy amp Paste sowie minimalen nderungen im DVB H AL Aufruf und an den Item Typen das AudioZapPluglIn und das ServiceZapPlugIn erg nzt sowie zur Liste der zu ladenden Plug Ins in der Klasse LoadESGClient hinzugef gt um die Ver nderungen der GUI der Anwendung deutlicher s chtbar zu machen 6 1 2 Phase 2 Durchf hrbarkeit des Skinnings Z el der zweiten Phase der_Implementierung war es anhand der Erstellung eines leicht modifizierten Skins die Skinningf higkeit zu testen sowie einen ausgew hlten Skin vom Client an alle weiteren Komponenten zu bergeben In der ersten Phase wurde beim Einbinden des Stylesheets n jeder Komponente der Name von Stylesheet und Skin statisch angegeben und musste somit bisher in jedem MyXaml Dokument per Hand vom Programmierersver nd
157. sendiagramm des modifizierten ImageButton Packages Anhang Seite 99 C Abk rzungsverzeichnis NET NET CF CLR DOM DTD DVB DVB C DVB H DVB H AL DVB S DVB SI DVB T EPG ESG ETSI FCL GUI IP ISO MPEG MPEG 2 TS MVC PDA PPC SGML SVG TSI UI URI VGA W3C XAML XHTML XML XUL NET Framework NET Compact Framework Common Language Runtime Document Object Model Document Type Definition Digital Video Broadcast Digital Video Broadcast Cable Digital Video Broadcast Handheld Digital Video Broadcast Handheld Abstraction Layer Digital Video Broadcast Satellite Digital Video Broadcast Service Information Digital Video Broadcast Terrestrial Electronic Program Guide Electronic Service Guide European Telecommunications Standards Institute Framework Class Library Graphical User Interface Internet Protocol International Organization for Standardization Moving Picture Experts Group MPEG 2 Transport Stream Model View Controller Personal Digital Assistant Pocket PC Standard Generalized Markup Language Scalable Vector Graphics T Systems International GmbH User Interface Uniform Resource Identifier Video Graphics Array World Wide Web Consortium Extensible Application Markup Language Extensible Hypertext Markup Language Extensible Markup Language XML User Interface Language Anhang Seite 100 D Glossar NET satz von Softwaretechnologien des Softwareherstellers Microsoft der al
158. sts der realisierten Funktionalit t sollen Fehler in der Implementierung aufgedeckt und ausgemerzt werden Kapitel 7 Ergebnisse Die m Rahmen dieser Arbeit erzielten Resultate werden n Kapitel 7 zusammengetragen mit der Zielstellung verglichen und bewertet Ebenso werden alternative Vorschl ge zur Umsetzung der implementierten Funktionalit t unterbreitet Kapitel 8 Zusammenfassung Dieses letzte Kapitel gibt einen berblick ber den Gegenstand der vorliegenden Arbeit sowie alle erzielten wesentlichen Ergebnisse Weiterhin werden Ideen zu deren Verbesserung und Weiterf hrung ge u ert Hintergrund Seite 5 2 Hintergrund Die vorliegende Diplomarbeit basiert auf einem vorhergehenden Projekt welches von der TST in Zusammenarbeit mit der FHTW Berlin durchgef hrt wurde In den folgenden Abschnitten sollen zun chst dieses Projekt und der entstandene ESG Client vorgestellt sowie daraus resultierende Vorgaben f r diese Arbeit benannt werden Soweit Keine anderen Quellen benannt sind basieren alle im Folgenden aufgef hrten Informationen auf Kenntnissen die im Rahmen des zugrunde liegenden Projektes erworben wurden 2 1 DVB H Projekt Unterwegs Fernsehen auf dem Laptop ist heute keine Zukunftsvision mehr dank PC Cards die als Empf nger f r DVB T Signale fungieren Digital Video Broadcasting DVB steht f r Digitales Fernsehen das ber Satell t DVB S ber Kabel DVB C oder ber terrestrische Antennen
159. t Wie im vorhergehenden Abschnitt erw hnt ist die schnelle Anpassbarkeit mittels des Skinning Features realisiert worden W hrend der parallel zur Implementierungsphase durchgef hrten Tests w e auch beim anschlie enden Testen der resultierenden Anwendung wurde festgestellt dass die Anwendung wesentlich langsamer startet als es bei dem urspr nglichen ESG Client der Fall war Es kann jedoch nicht gesagt werden ob dies ausschlie lich auf dem Emulator der Fall ist oder ob die modifizierte Anwendung auch auf einem richtigen Pocket PC unter wesentlichen Performanzeinbu en zu leiden hat da kein Testger t zur Verf gung stand Weiterhin wurde zuvor bereits eine Einschr nkung in der realisierten Skinning f higkeit hinsichtlich der Anpassbarkeit aller GUI Elemente gemacht welche die optionale Ver nderung von Gr en und Positionen als auch die essentielle Austauschbarkeit von Bildern betrifft Gr en und Positionen k nnen generell ber ein Stylesheet ver ndert werden Ergebnisse Seite 88 in einigen F llen werden diese Werte jedoch nicht beachtet da die Darstellung der Elemente im Programmcode basierend auf der originalen Implementierung anhand festgelegter Werte f r Gr en und Positionen automatisch erfolgt Dies trifft u a f r die Erstellungsder Tableiste und der Anbieterlisten in den Zapping Plug Ins zu Eine benutzerdefinierte Austauschbarkeit von Bildern konnte nicht optimal realisiert werden Ohne Ver nderungen
160. t Canvas gt 3 using System using System ComponentModel using Windows Forms namespace MyApp d class UndoButton Button private bool canUndo public bool CanUndo set canUndo value void OnOK sender object EventArgs ei i do something Abbildung 7 Beispiel f r ein einfaches XAML Dokument xaml In XAML stehen vier Kategorien von Elementen zur Verf gung Panel Elemente Interaktionselemente dokumentbezogene Elemente und grafische Formen Ein Fenster wird in XAML durch ein Panel Element Z B Canvas definiert statt wie bisher durch ein Form Eine weitere Neuerung ist de Verwendung so genannter Styles Diese sind Sammlungen von Stilattributen f r ein Steuerelement die der Compiler automatisch jedem Steuerelement zuweist das den jeweiligen Stl verwendet siehe Abbildung 8 vgl long2 l les Stildefinition gt 2 lt Style def Name BtnStyle gt 3 Button Background Blue FontSize 12 gt 4 lt Style gt 5 6 lt normale Buttondefinition gt Jl lt Button Background Red gt Normal lt Button gt 8 9 lt Buttondefinition mit Stilzuweisung gt 10 lt Button Style BtnStyle gt Styled lt Button gt Abbildung 8 Beispiel f r die Verwendung von Styles in XAML vgl Iong4 Grundlagen Seite 25 Reine XAMIL Seiten die keinerlei Programmcode enthalten k nnen direkt vom Browser dargestellt werden Dies ist sehr von Vorteil wenn rein in
161. t Package gt gt On irPlugin lt lt Package gt gt E lt lt Import gt gt RER TT OnairPpanel lt lt Uise gt gt TT Onairplugin Sk EI On amp irDrawnlistBox E OnsirListBox H EsSColors BrowsePlugin lt lt Package gt gt 8 Browse TT BrowsePlugin Abbildung 12 Systemarchitektur des bestehenden ESG Client Im Rahmen dieser Arbeit soll aufgrund der Komplexit t des Systems und des begrenzten Zeitfensters eine m gliche Neugestaltung des ESG Client anhand einiger weniger Komponenten demonstriert werden Daher wird an dieser Stelle auf eine vollst ndige Analyse der bestehenden Anwendung verzichtet und statt dessen nachfolgend Komponenten ausgew hlt und analysiert Der ausf hrlich dokumentierte Programmcode des bestehenden ESG Client ist auf der im Anhang befindlichen CD ROM zu finden 4 4 2 Analyse ausgew hlter Komponenten Damit als Resultat der beispielhaften Modifikation eine funktionst chtige Anwendung vorliegt werden der Client inklusive Startbildschirm die Schnittstelle sowie der ImageButton und ein Plug In ausgew hlt Die geforderte Erhaltung des Plug In Konzeptes soll mittels des TVZapPluglns realisiert werden Auf eine Analyse des DVB H AL wird verzichtet da die Analyse Seite 38 Funktionalit t dieser Schicht unver ndert erhalten bleiben soll In den folgenden Abschnitten werden die vier ausgew hlten Komponenten hinsichtlich deren Modifizierbarkeit untersucht Es soll ermittelt werden inwie
162. t Stand 2004 Internet http www broadcastpapers com data NokialPDatacast03 htm Zugriff 24 05 2005 11 43 Uhr jen Jendryschik M 2005 Webentwicklung Glossar WWW Dokument Stand 13 03 2005 Anhang Seite 108 Internet http jendryschik de wsdev glossar gesamt Zugriff 30 05 2005 18 46 Uhr kauf Kaufmann B 2001 Das Model View Controller Modell PDF Dokument Stand 30 10 2001 Internet http fara cs uni potsdam de kaufmann tuts mvc pdf Zugriff 24 05 2005 12 21 Uhr long1 Chand M 2003 Longhorn for Developers A Brief Introduction WWW Dokument Stand 11 12 2003 Internet http www c sharpcorner com Longhorn Longhorn Longhornlntroductionsasp Zugriff 03 06 2005 14 34 Uhr long2 Esposito D 2004 Code Name Longhorn A First Look at Writing ang eplovimg Apps in the Next Generation of Windows WWW Dokument Stand Januar 2004 Internet http msdn microsoft com longhorn default aspx pull msdnmag issues 04 01 Develo pingAppsforLonghorn default aspx Zugriff 03 06 2005 14 38 Uhr long3 Rector B 2003 The Longhorn Application Model WWW Dokument Stand Oktober 2003 Internet http msdn microsoft com Longhorn understanding books rector default aspx pull liprary en us dnintlong html longhornch01 asp Zugriff 07 06 2005 11 57 Uhr long4 Rector B 2003 Controls and XAML WWW Dokument Stand Dezember 2003 Internet http msdn microsoft com librar
163. t auf dem Markt zum gegenw rtigen Zeitpunkt der Dell Axim x50v als Entwicklungsgrundlage gew hlt werden Dieser bietet eine VGA Aufl sung und einenProzessorleistung von 624MHz welche das momentane Max mum bei PDA Prozessoren darstellt Der integrierte Grafikbeschleuniger erm glicht DVD Qualit t beim Abspielen von Videomaterial Weiterhin ist das geforderte Betriebssystem Windows Mobile 2003 SE for Pocket PC installiert und somit die Videowiedergabe und Verwendung des ESG Client im Querformat m glich Im CompactFlash Steckplatz f r entsprechende Speicherkarten k nnte n naher Zukunft der DVB H Empf nger eingesteckt werden Bei der Weiterentwicklung des ESG Client sollen die zugrunde liegende System architektur sowie das Design der grafischen Benutzungsschnittstelle der Anwendung m glichst erhalten bleiben Die Vorgaben hinsichtlich der Zielplattformen sowie der Entwicklungsumgebung s nd zu befolgen und bilden zusammen mit der aus dem Projekt resultierenden Implementierung des ESG Client Prototypen die Basis f r diese Diplomarbeit Im folgenden Kapitel sollen die zum Verst ndnis der Arbeit erforderlichen grundlegenden Kenntnisse vermittelt werden Dabei handelt es sich einerseits um technische Details zum zuvor beschriebenen Projekthintergrund sowie andererseits um die Vorstellung neuer Technologien die im Rahmen dieser Arbeit verwendet werden sollen 9 Siehe http www microsoft com downloads details aspx FamilyID 5c53e3
164. t im Rahmen seiner NET Initiative eingef hrt wurde csharp2 Code Behind Programmcode in einer Assembly welcher den in einem XML basierten Dokument referenzierten Eventkontext bereitstellt Dokument Eine nicht ausf hrbare Datei mit in der Regel durch Menschen lesbarem Inhalt z B HTML Dokument Word Dokument Besteht aus Inhalt Struktur Informationen zur visuellen Darstellung und semantischen Informationen jen Dokumenttyp Definition Deklaration in SGML und XML Dokumenten die die Struktur eines solchen Dokuments festlegt dtd DVB Bezeichnet in technischer Hinsicht die standardisierten Verfahren zur bertragung von digitalen Inhalten Fernsehen Radio Mehrkanalton Raumklang interaktive Dienste wie MHP EPG und Anhang Seite 101 Teletext und weitere Zusatzdienste durch digitale Technik dvb DVB C Eine Variante von DVB die f r die bertragung von digitalen Mehrwertdiensten ber Kabelanschluss verwendet wird dvbc DVB H Standard zur bertragung digitaler Dienste auf mobile Empfangsger te ber terrestrische Antennen DVB H AL Abstraktionsschicht zur Kommunikation zwischen dem ESG Client und dem unterliegenden Datenmodell von TSI die Objektlisten und Hierarchien dieser Objekte aus den empfangenen XML Daten erzeugt und diese auf Abruf zur Visualisierung an den ESG Client bergibt DVB S Spezielle Variante zur bertragung von DVB per Satellit dvbs DVB T terrestrische
165. t ist aus Anwendungen wie dem Windows Media Player dem MP3 Player WinAmp oder den Anwendungen des Mozilla Projektes wie z B dem Internetbrowser Firefox Diese Softwareprodukte bieten die M glichkeit der benutzerdefinierten Gestaltung der GUI mit Hilfe von vorgefertigten oder selbst erstellten Dokumenten welche die Darstellungsweise der sichtbaren Elemente definieren Durch Austausch dieser Dokumente l sst sich einfach und schnell das Aussehen der GUI ver ndern Die besondere Problematik die sich im Falle einer individuellen Anpassbarkeit des ESG Client Prototypen stellt ist dass alle bekannten Technologien die eine Trennung der Darstellung von der Programmlogik erm glichen wie z B die Mozilla eigene Sprache XUL XML User Interface Language oder Microsoft s XAML nicht f r PDA s verf gbar sind Demzufolge k nnen diese nicht zur Modifikation des ESG Client verwendet werden da dieser auf der Plattform Pocket PC eine Kategorie von PDA s lauff hig sein muss MyXaml st ein neuartiger L sungsansatz der bereits die Verwendung der Markup Sprache XAML erm glicht und zudem f r d e Entwicklung von Software f r d e Plattform Pocket PC benutzt werden kann Bei dieser Technologie handelt es sich um eine Implementierung mit deren Hilfe die Bestandteile der grafischen Benutzungsschnittstelle ebenfallsin Form von Textauszeichnung beschrieben sowie diese Elemente vom zugeh rigen Parser zur Laufzeit der Anwendung erzeugt werden k nne
166. tMainForm zu ladenden Plug Ins werden auf hren Typ hin berpr ft Es werden ausschlie lich Plug Ins geladen die die Schnittstelle IESGPlugIn implementieren Diese soll daher im folgenden Abschnitt genauer betrachtet werden 4 4 2 2 IESGPlugin Anhand der Schnittstelle IESGPlugIn kann vom Cl entMainForm ein Plug In erkannt geladen und eingebunden werden Dazu wird die ffentliche MethodagetContentPanel aufgerufen Diese erzeugt ein Panel Objekt und bergibt dieses an den aufrufenden Client Eine bersicht ber alle Methoden der Schnittstelle ist in Abbildung 15 zu sehen Ein Plug In welches im ESG Client verwendet werden soll muss alle aufgef hrten Methoden implementieren interface ESG rag Jean ao Gef Aealleoe Siwan Gef apnoegt Siwan Geiclvokriiaere sting a Desenat on g atning gettonteni anel Panel Abbildung 15 Klassendiagramm ESGPlugln Package Die zur Repr sentation eines Plug Ins auf dem Startscreen bzw in der Tableiste ben tigten Bilder werden von den Pius Ins ale Ressourcen eingebunden Die Methoden getBigIcon und getTabIcon bergeben diese Bilder in Form von Bitmap Arrays Da sp ter die Bilder wie bereits erw hnt zwecks Austauschbarkeit beim Branding in einem Ordner vorliegen sollen k nnten an dieser Stelle String Arrays zur ckgegeben werden welche die Pfade zu den jeweiligen Bildern enthalten Die Methode getSmallIcon wird im bestehenden ESG Client nicht verwendet Der Name
167. tellung verzichtet werden Das Ergebnis der in den vorhergehenden Abschnitten beschriebenen Implementierung soll im folgenden Kapitel mit den gestellten Anforderungen verglichen und ausgewertet werden Ergebnisse Seite 86 7 Ergebnisse Eine genaue Betrachtung der im Rahmen der vorliegenden Diplomarbeit umgesetzten Neugestaltung des prototypischen ESG Client zeigt dass die gesetzte Zielstellung weitest gehend erreicht wurde Basierend auf einer ausf hrlichen Analyse der bestehenden Implementierung konnte unter Verwendung der neuartigen Technologie MyXaml eine Anwendung geschaffen werden deren grafische Benutzungsschnittstelle schnell und einfach frei von jeglichem Programmieraufwand individuell an verschiedene Designs angepasst werden kann ohne dass eine Ver nderung der unterliegenden Applikationslogik erforderlich ist und die wie gefordert auf der Plattform Pocket PC 2003 SE lauff hig ist Auf die erzielten Resultate aber auch die fehlende Funktionalit t soll im Vergleich mit den an die modifizierte Anwendung gestellten Anforderungen sowie der konkreten Ziel definition nachfolgend im Einzelnen noch einmal genauemeingegangen werden Umsetzung der Skinningf higkeit Im Rahmen dieser Arbeit konnte die zwingend erforderliche Trennung der GUI von der unterliegenden Applikationslogik insofern realisiert werden dass s mtliche Formulare und Panels sowie die zugeh rigen Interaktionselemente in Form von XML bas ertem Markup be
168. testet und Fehler n der Umsetzung aufgedeckt und behoben Ein Vergleich der zuvor genannten erzielten Ergebnisse mit den gestellten Anforderungen siehe 4 6 und der Zieldefinition siehe 4 7 zeigt dass der modifizierte ESG Client den Erwartungen gem umgesetzt wurde auch wenn einige wenige Funktionen n der K rze der Zeit nicht optimal implementiert werden konnten Die MyXaml Technologie hat sich als ein n tzlicher und leicht zu verwendender L sungsansatz erwiesen der jedoch ebenso weiterer Verbesserung bedarf um die gew nschte Funktionalit t vollst ndig in der neugestalteten Version des ESG Client implementieren zu k nnen Besonders vorteilhaft waren die M glichkeit der Beschreibung selbst erstellter Komponenten mittels Markup sowie die zur Verf gung gestellten Style und MxComponent Elemente welche erst die Arbeit mit Stylesheets und Skins erm glichten Da es och bei der resultierenden Anwendung noch immer um eine prototypische Implementierung handelt die nicht frei von Fehlern ist bietet sich eine Weiterf hrung der vorliegenden Arbeit an Im Hinblick auf eine Verbesserung der erzielten Ergebnisse m sste 27 Die unzureichende Dokumentation wird an dieser Stelle au er Acht gelassen Die MyXaml Technologie ist einfach zu verwenden sofern erst einmal die grundlegenden Funktionen bekannt sind Zusammenfassung Seite 93 u a die zum Teil etwas unflexible Berechnung von Gr en und Positionen der einzelne
169. tionsweise der Anwendung zwbeeinflussen und dabei den Programmieraufwand m glichst gering halten W nschenswertw re eine L sung die es erm glicht dass die erstellte GUI sowohl auf einem Pocket PC als auch auf einem Desktop oder Tablet PC benutzt werden kann wobei eine Unterst tzung der Plattform Pocket PC zwingend ist Dieser Forderung nach individueller Anpassbarkeit soll n der vorliegenden Arbeit nachgegangen werden indem der bestehende Prototyp derart umgestaltet wird dass dieser die Verwendung von Skins unterst tzt Dazu soll zun chst die Zielgruppe f r den modifizierten ESG Client definiert werden Analyse Seite 31 4 2 Definition der Zielgruppe Eine Modifikation des bestehenden ESG Client im Hinblick auf eine _individuelle Anpassbarkeit der grafischen Benutzungsschnittstelle w re f r die folgenden drei Gruppen von Interesse T Systems International GmbH Media amp Broadcast F r die TSI w re eine Modifikation des ESG Client von Interesse damit dieser an verschiedene Firmen verkauft werden kann Gegenw rtig met das Design auf das Corporate Design der TSI abgestimmt Es ist daher notwendig dass die Gestaltung der Anwendung an das Corporate Design der K uferfirmen angepasst werden kann Die kaufenden Firmen F r eine K uferfirma w re ein skinningf higer ESG Client insofern von Interesse dass im Falle einer nderung des Corporate Designs der Firma oder zu besonderen Anl ssen das Design ents
170. ttels MyXaml Beschreibung allem Anschein nach nicht die M glichkeit besteht Steuerelemente einer Aral et hinzuzuf gen m ssen die erzeugten ImageButtons daher in einer ArrayList abgelegtswerden sobald das Panel zum ersten Mal vom Client geladen wird und somit den Fokus erh lt Erst durch diese Notl sung ist es m glich die Buttons wie bisher an das Informationsfenster zu bergeben welches die Behandlung der Bewegungen des Steuerkreuzes regelt Aufgrund der Eventbehandlung durch das InfoPanel sowie der Tatsache dass stets dessen Start Button fokussiert sein soll wird sobald das contentPanel den Fokus erh lt dieser an das InfoPanel weitergegeben Die Methoden die im Falle eines Ereignisses aufgerufen werden konnten unver ndert bernommen werden Modifikation des ImageButtons Die Komponente ImageButton wurde auf die im Entwurf angedachte Art und Weise problemlos umgesetzt Das bedeutet dass in der modifizierten Version durch das Setzen der 23 Es gibt keinerlei Hinweise auf die M glichkeit der Beschreibung einer ArrayList in Form von MyXaml Markup in der Dokumentation Alle Versuche der Beschreibung blieben erfolglos Implementierung Seite 72 Eigenschaft Focusable manuell vom Programmierer bestimmt werden kann ob eine ImageButton Instanz fokussierbar ist oder nicht Zus tzlich wurde eine Methode setButtonFocusIndex hinzugef gt die es erlaubt die horizontale und vertikale Position eines ImageButtons in einem 2D A
171. un chst wurde die Klasse PInfofenster modifiziert Die GUI Beschreibung wurde in ein als Ressource eingebettetes MyXaml Dokument ausgelagert und beim Konstruktoraufruf der Klasse vom Parser anhand der Methode LoadObject das entsprechende Panel ohne Angabe eines Parent Objektes erzeugt Alle definitiv ben tigten Steuerelementeswerden vom Programmcode erzeugt und im MyXaml Dokument referenziert sowie d e Eigenschaften der Elemente ber die zugeh rigen Stildefinitionen hinzugef gt Das Bild f r den Medientyp wird zur Laufzeit der Anwendung abh ngig vom bergebenen Item der entsprechenden PictureBox zugewiesen Das Bild zur Anzeige des Bezahlstatus wird bereits um MyXaml Dokument zugewiesen und dynamisch ein bzw ausgeblendet Der Fortschrittsbalken wurde dahingehend ver ndert dass nicht bei jedem neu bergebenen Item der alte Balken gel scht und ein neuer Balken gezeichnet wird sondern das Steuerelement im Implementierung Seite 73 Dokument beschrieben und im Programmcode lediglich jeweils der aktuelle Wert gesetzt und die Anzeige aktualisiert wird Auch die MessageBox wird in der modifizierten Version nur noch einmalig erzeugt und beim Wechsel des anzuzeigenden Items jeweils die Werte in der Box dem aktuellen Item angepasst Die Umgestaltung der Klasse MyMessageBox erfolgte auf die gleiche Weise wie die des PInfofensters Im MyXaml Dokument werden lediglich allen Elementen Stile und Methoden zur Eventbehandlung zugewie
172. xt steuert Anwendung mit eigenem Eventkontext Abbildung 27 Geplante Funktionsweise des modifizierten ESG Client vgl myxami7 Um die beim Erzeugen der Steuerelemente bergebenen Stile ver ndern und somit das geforderte Branding testweise durchf hren zu K nnen wird nach der Erstellung verschiedener Skins deren Verwendbarkeit mit Hilfe des Skinning Features gepr ft Dieses soll zun chst hinter dem FHTW Logo auf dem ClientMainForm versteckt werden Beim Start dieses Werkzeuges werden alle verf gbaren Stylesheets ermittelt Nach der Auswahl eines Stylesheets wird dieses nach Skins ndefiniert in Form von MxComponent Elementen durchsucht und die gefundenen SK ns anhand ihrer Namen aufgelistet Nach der Auswahl eines Skins werden der alte und neue Stylesheet und Skin Name vermerkt und nach einem Neustart der neue Skin verwendet Dazu werden in allen MyXaml Dokumenten die Namen des zuvor verwendeten Stylesheets bzw Skins einfach gegen die neuen Namen ausgetauscht Die entsprechenden Namen m ssen daher jeweils als zus tzliche Parameter beim Aufruf des Startscreens Plug Ins oder InfoPanels bergeben werden Der n diesem Kapitel angefertigte Entwurf dient als Grundlage f r die Realisierung der geforderten Skinningf higkeit und Durchf hrung des Skinnings unter Verwendung des entworfenen Werkzeuges und soll im Folgenden umgesetzt werden Die Vorgehensweise sowie Probleme bei der Implementierung werden im anschlie enden Kapitel
173. y default asp url library en us dnintlong html longhorn ch03 asp Zugriff 07 06 2005 12 53 Uhr myxaml1 Clifton M 2004 What Is XAML WWW Dokument Stand 05 11 2004 Internet http myxaml com marcclifton archive 2004 1 1 05 524 aspx Zugriff 07 06 2005 00 29 Uhr myxaml2 Clifton M 2004 MyXaml Version 1 00 Is Released WWW Dokument Stand 31 08 2004 Internet http myxaml com marcclifton archive 2004 08 31 457 aspx Zugriff 07 06 2005 00 31 Uhr myxaml3 Clifton M u a 2004 MyXAML WWW Dokument Stand 09 07 2004 Internet http www longhornblogs com akinney archive 2004 03 17 2773 aspx Zugriff 07 06 2005 00 33 Uhr myxaml4 unbekannt 2005 myxaml tigrissorg WWW Dokument Stand 2005 Internet http myxaml tigris org Zugriff 07 06 2005 00 34 Uhr myxaml5 MyXaml 2005 MyXaml Support WWW Dokument Stand 2005 Internet http www myxaml com support fag aspx Zugriff 07 06 2005 00 35 Uhr myxaml6 Bierman B 2004 Using MyXaml on the Compact Framework WWW Dokument Stand 02 09 2004 Internet htto www codeproject com netcf UsingMyXamlICF asp Zugriff 07 06 2005 00 38 Uhr Imyxami7 Clifton M 2004 MyXAML XAML style gui generator WWW Dokument Stand 13 02 2004 Internet http www codeproject com cs miscctrl xmlGuiGenerator asp Zugriff 24 06 2005 14 38 Uhr Anhang Seite 109 myxaml8 MyXaml Wiki Autor 2004 MyXaml Wiki Introductio
174. yXaml neugestaltete Version auf einem Windows Longhorn Betriebssystem jedoch auch ohne nderungen Wie auch Xamlon unterst tztMyXaml die Verwendung von Vektorgrafiken MyXaml unterst tzt die Wi ederverwendbarkeit von Komponenten Dasselbe Markup kann durch einfaches Kopieren und Einf gen in unterschiedlichen Anwendungen benutzt werden Ebenso kann es auch als MxComponent n separaten Dokumenten abgelegt und ber einen Include Tag beliebig oft n andere MyXaml Dokumente eingef gt werden MyXanil stellt keine komplexe Sprache mit eigenem Objektmodell sondern einen einfachen Parser dar der mit den Namensr umen System Reflection und System Xml die vom NEI Framework bereitgestellte Funktionalit t verwendet MyXaml unterst tzt die Verwendung von Styles Mit Hilfe deser XML bas erten L sung sollte es m glich sein dass die Gestaltung der GUI vollst ndig von Benutzern mit geringsten Programmierkenntnissen durchgef hrt werden kann Es wird lediglich die unterliegende Logik zum Aufruf der dynamischen Generierung der GUI Analyse Seite 36 sowie die Ereignisbehandlung in Form von Programmcode ben tigt Im Falle eines Brandings f r verschiedene Firmen k nnte daher direkt durch Designer anstelle eines Photoshop Prototypen die Erstellung eines Skins erfolgen welcher zusammen mit der GUI Beschreibung und dem unterliegenden Code einfach und schnell einen fertigen ESG Client bildet Nachfolgend soll festgeste
Download Pdf Manuals
Related Search
Diplomarbeit diplomarbeit diplomarbeit beispiel diplomarbeit drucken diplomarbeiten24 diplomarbeit bbs diplomarbeit englisch diplomarbeit musiktherapie diplomarbeit binden lassen diplomarbeit vorlage diplomarbeit binden diplomarbeitsdatenbank login diplomarbeit schreiben lassen diplomarbeit drucken lassen diplomarbeit datenbank diplomarbeit themen diplomarbeitsthemen hak diplomarbeit meduni wien diplomarbeit korrigieren lassen
Related Contents
Nobo EuroPlus Ericsson 7700 Printer User Manual Note de service – MAU (N° 1) Técnicas para armado de redes LAN, utilizando Software Libre Lavavajillas - Canadian Appliance Source EN / Application programming for ACS850 drives application guide Copyright © All rights reserved.
Failed to retrieve file