Hogeschool Gent Departement Industriële Wetenschappen Vakgroep Elektronica. Academiejaar FIM for itv. Koen De Voegt

Maat: px
Weergave met pagina beginnen:

Download "Hogeschool Gent Departement Industriële Wetenschappen Vakgroep Elektronica. Academiejaar 2004 2005. FIM for itv. Koen De Voegt"

Transcriptie

1

2 Hogeschool Gent Departement Industriële Wetenschappen Vakgroep Elektronica Academiejaar FIM for itv Koen De Voegt Promotoren: Ir. K. Handekyn (Alcatel Antwerpen) Ir. L. Colman (Hogeschool Gent) Scriptie voorgedragen tot het behalen van het diploma van Industrieel Ingenieur Elektronica optie ICT

3 Woord vooraf Het schrijven van een afstudeerscriptie vormt een belangrijk deel van iemands opleiding. Om tot een degelijk resultaat te komen is er dan ook een degelijke begeleiding noodzakelijk. De mensen die hiervoor in mijn geval gezorgd hebben wil ik dan ook uitvoerig bedanken. Allereerste wil ik mijn stage begeleider ir. Koen Handekyn en het ganse ReNA-team van Alcatel Antwerpen bedanken. Zij gaven mij de kans te werken met zeer boeiende technologie in een inspirerende omgeving. Verder bedank ik ook graag ir. Luc Colman, voor zijn wijze raad bij de opbouw van dit schrijven. Waar- Als laatste bedank ik iedereen die geholpen heeft bij het vinden van schrijf- en typfouten. bij ik in het bijzonder mijn zus Veerle De Voegt wil vermelden. Koen De Voegt Antwerpen, 20 mei 2005 i

4 Abstract Keywords: interactive television, calendar, SMS, instant messaging. Abstract: This work examines how the modern family can use several new technologies to manage it s information. This is called FIM or Family Information Management. The family information examined in this work is the family calendar, the grocerylist and miscellaneous note s. The new technologies described are itv, or Interactive Television, Instant Messaging and SMS. By combining these technologies the information will be available to the different family members via TV, PC and mobile phone. In concrete this work describes the development of two applications. One is used to read calendar information from a server and display it on TV. The other application will allow the use of an instant messaging client to edit the same calendar information. This all will show potential new ways for sharing information between family members using modern technology. ii

5 Inhoudsopgave Woord vooraf Abstract Inhoudsopgave Inleiding i ii iii vii 1 Situering Stage AmigoTV Werking Opbouw Opdracht FIM Overzicht I Gebruikte technologieën 7 2 Ontwikkelings hulpmiddelen Eclipse Log4j Lumbermill itv Middleware Gesloten middleware Open middleware MHP Invoer Grafische weergave ical Kalender applicaties Mogelijkheden ical4j Bestanden openen iii

6 INHOUDSOPGAVE iv Wijzigingen Jabber Smack WebDAV Jakarta Slide Javadoc II Ontwikkeling applicaties 24 8 De TV-GUI Beperkingen Structuur van de code De applicatie opstarten Het Overzichtsscherm Het Vandaag -scherm Het Morgen -scherm Het Deze Week -scherm Het Deze Maand -scherm Het Notitie -scherm Het Boodschappen -scherm Gegevensopslag Het AWT pakket De AComponent en AAbstractComponent klassen De ALabel klasse De AMultilineLabel klasse De AShortLabel klasse De AList klasse De BoxLayout klasse De GridLayout klasse Het Model pakket De -View klassen De NormalTV klasse De FridgeTV klasse De Models klasse De ModelsView klasse De ScenesViewItf klasse De ScenesImpl klasse

7 INHOUDSOPGAVE v 11 Het GUI pakket De InternalFrameUI klasse De -ViewUI klassen De DayViewUI klasse De WeekViewUI klasse De MonthViewUI klasse De DayOfMonth klasse De CommandBarUI klasse De FridgeTVUI klasse De DefaultSkin klasse De ScenesUI klasse De Gui klasse De Images klasse De Constants klasse De IM-Interface Werking Afspraken Boodschappen Notities Het IM Interface pakket De Constants klasse De Grocery klasse De GroceryList klasse De Note klasse De NoteList klasse De InitData klasse De AppointmentList klasse De FridgeTV klasse De FridgeTVPacketFilter klasse De FridgeTVPacketListener klasse De FridgeTVRosterListener klasse De MessageParser klasse De UserList klasse Gedeelde klassen ical Bestanden Lezen De OpenLocalFile klasse De OpenRemoteFile klasse De OpenSecureRemoteFile klasse ical Bestanden Schrijven De SaveLocalFile klasse De SaveSecureRemoteFile klasse De TestMain klasse

8 INHOUDSOPGAVE vi 15 SMS SMS gateway Andere gateways MSN Mobile III Opzetten demo-opstelling Demo opstelling Opzet Jabber server icalendar Server TV-GUI Uitvoer op een TV scherm De afstandsbediening Overlay Mozilla Calendar Jabber Conclusie 59 TV-GUI IM-Interface SMS Lijst van figuren 62 Lijst van tabellen 63 IV Bijlagen 64 A Code Voorbeelden 65 A.1 Uitlijning AMultilineLabel A.2 Uitlijnen elementen in GridLayout A.3 Invullen list in DayView A.4 Opbouw scherm in DayViewUI A.5 Ophalen elementen uit list in DayViewUI B CD-ROM 72

9 Inleiding Vele van de ontwikkelingen in computer- en internettechnologie die onze maatschappij de laatste decennia doormaakte zijn nog steeds niet in de gehele bevolking doorgedrongen. Dit is vooral te wijten aan het feit dat de PC nog steeds ontbreekt in groot aantal huisgezinnen, maar een familie zonder televisie is in onze maatschappij vrijwel onbestaande. Met de nakende opkomst van de interactieve televisie (itv) zullen vele van de, in oorsprong, PC-toepassingen nu voor een aanzienlijk grotere groep mensen beschikbaar worden. Dit schrijven behandelt het elektronisch beheer van kalenderinformatie, meer en dit specifiek in het kader van het gezin. Toepassingen die dit mogelijk maken op PC zijn reeds in grote verscheidenheid beschikbaar. Ze worden PIM s genoemd, ofwel Personal Information Managers. Naar analogie wordt er hier gesproken over FIM, ofwel Family Information Manager. Een andere zeer veel gebruikte technologie is SMS. Er zal dan ook getracht worden SMS te gebruiken om voor een mobiele functionaliteit te zorgen. Concreet wordt hier de ontwikkeling van een applicatie om kalendergegevens op het interactieve televisieplatform weer te geven besproken. Evenals de ontwikkeling van een afzonderlijke applicatie die het mogelijk maakt deze gegevens via een instant messaging client in te voeren en op te vragen. Er wordt verder ook onderzocht of deze laatste wijze van gegevens opvragen en invoeren kan uitgebreid worden naar een mobiel platform via SMS. Met dit alles wordt geprobeerd een beeld te schetsen van de manier waarop een moderne familie in de nabije toekomst haar informatie zou kunnen beheren. vii

10 Hoofdstuk 1 Situering 1.1 Stage Om mijn eindwerk te maken heb ik stage gelopen bij Alcatel te Antwerpen. Meer bepaald bij de ReNA-groep van het Research & Innovation departement. ReNA staat voor Residential Networked Applications. In het Residential Networked Applications Project Plan 2005 wordt de volgende omschrijving van de objectieven van de ReNA-groep gegeven: The ReNA s project s objective is to design and prototype innovative applications, generating appealling experiences for the broadband family, leveraging Alcatel s service platforms and broadband solutions. ReNA application concepts can be positioned in the interactive TV space of converged triple play solutions. Prototyping activities anchor the application concepts in Alcatel s portofolio of service solutions. Users trials ensure the applications are aligned with end-users expectations and provide the business division with lead customers. Het is dus het doel van de ReNA groep om prototype applicaties te ontwikkelen die gebruik maken van de zogenaamde triple play -technologieën. Triple play is hoge snelheid internet, IP-telefonie en interactieve breedband video over één enkele verbinding. Met deze toepassingen is het de bedoeling gebruikers-testen uit te voeren. Op het ogenblik werkt men bij ReNA aan twee projecten namelijk de Personal Broadcaster en AmigoTV. Het project dat in dit werk beschreven wordt, sluit zeer nauw aan bij AmigoTV. Er wordt in de volgende deel dan ook meer informatie over AmigoTV gegeven. 1.2 AmigoTV Werking Bij AmigoTV draait alles om het samen televisie kijken. Waarbij de TV kijker van zijn vrienden Buddies kan zien welk programma zij op dit ogenblik aan het bekijken zijn. (Figuur 1.2 (a)) Hij kan dan eventueel beslissen om naar hetzelfde TV programma te gaan kijken en via voice chat met elkaar in contact treden. (Figuur 1.1) Dit is eventueel met meerder gebruikers op verschillende locaties tegelijkertijd mogelijk. Deze verschillende gebruikers die naar hetzelfde programma kijken en met elkaar kunnen praten bevinden zich nu virtueel in dezelfde kamer of Room. 1

11 HOOFDSTUK 1. SITUERING 2 Figuur 1.1: Voice chat met AmigoTV Zoals in afbeelding 1.2 (b) te zien is, kan een gebruiker tijdens het gezamenlijk televisie kijken, verschillende animaties starten. Die verschijnen dan op het scherm van alle TV-kijkers die zich in dezelfde kamer bevinden. Dit is vergelijkbaar met de Winks die in de laatste versie MSN messenger te vinden zijn. (a) (b) Figuur 1.2: (a) Weergeven welke TV programma s je buddies bekijken. (b) Een Animatie verzenden Opbouw Zoals in Figuur 1.3 te zien is, is er voor de gebruiker maar een zeer gelimiteerde infrastructuur noodzakelijk. Dit is namelijk een breedband router, een set-top box (STB), een afstandsbediening en een microfoon. De besturing gebeurt met een gewone afstandsbediening. Navigatie gebeurt met behulp van de kleurknoppen en de pijltjestoetsen. Er wordt steeds gezorgd voor een eenvoudige intuïtieve besturing. Dit moet garanderen dat deze applicatie dicht bij de TV ervaring staat die de gebruiker gewoon is. Dit is wat men de lean back experience noemt

12 HOOFDSTUK 1. SITUERING 3 Figuur 1.3: Benodigdheden AmigoTV in tegenstelling tot bijvoorbeeld PC gebruik dat als lean forward experience bestempeld wordt. Een gebruik van andere invoerapparaten zoals draadloze muis of toetsenbord zouden deze gebruikerservaring veranderen. 1.3 Opdracht In dit schrijven wordt onderzocht hoe een moderne familie van de verschillende technologieën gebruik kan maken om op een efficiënte manier zijn informatie te beheren. Er wordt gedacht aan de familiekalender, maar ook aan simpele dingen zoals het boodschappenlijstje of de notities op een prikbord in de keuken of met magneetjes op de koelkast. Deze zaken zouden op een elektronische manier bewaard kunnen worden. Via deze weg kunnen zij dan ook van op verschillende plaatsen geraadpleegd worden. En bijkomend voordeel is dat informatie in multimediale vorm kan gebruikt worden. Er moet voor gezorgd worden dat de gegevens snel en door ieder gezinslid bekeken en gewijzigd kunnen worden. Hiervoor wordt er uitsluitend gebruik gemaakt van wijd verspreide en toegankelijke technologie. Dit is met name de TV, via de uitbreidingen die itv, of interactieve televisie, bied. En het zeer populaire en commercieel zeer aantrekkelijke SMS. Er wordt eveneens voor gezorgd dat de link met de PC omgeving niet verloren gaat. 1.4 FIM Programma s die in een PC-omgeving instaan voor kalenderbeheer worden PIM s genoemd. PIM is de afkorting van Personal Information Managment. Analoog hieraan spreken wij over Family Information Managment, ofwel FIM. Om de sterke verwantschap met AmigoTV te benadrukken werden de applicaties die in dit kader ontwikkeld werden FrigoTV genoemd.

13 HOOFDSTUK 1. SITUERING 4 Dit is de naam van de gebruikersgerichte dienst die met behulp van deze applicaties zal aangeboden worden. De opdracht, in sectie 1.3 beschreven, is zeer ruim en weinig concreet. Het bouwen van een applicatie die al deze aspecten ten volle ondersteunt was dan ook niet mogelijk in de beperkte periode die voor dit project beschikbaar was. Eén van de weinige vereisten was dat er voor de itv component gewerkt moest worden in het reeds voor AmigoTV opgezette framework. Dit om later een eventuele integratie in dit project te vergemakkelijken. Dit betekent dat er gewerkt moest worden met de bij Alcatel in ontwikkeling zijnde AWT 1. De ontwikkeling van AmigoTV gebeurde in java. Bij het uitdenken van de vormgeving en functionaliteit moest er dus ook reeds met AmigoTV rekening gehouden worden. Zoals bijvoorbeeld het onderaan weergeven van de functies die bij de kleurknoppen van de afstandsbediening horen en de functionaliteit van de rode knop die steeds voor een stap terug zorgt. Aangezien de functie van de rode knop al vast lag bleven er nog drie knoppen over. De link tussen de gele knop en de traditioneel gele notitiepapiertjes leek voor de hand liggend. Aan de groene knop werd alle kalenderinformatie verbonden. Aan de blauwe het boodschappenlijstje. Figuur 1.4: Schema Aangezien snelle toegang tot de gegevens wenselijk is, wordt er een overzichtsscherm voorzien. Dit scherm zal de afspraken van de huidige dag, de meest recente notities en het boodschap- 1 AWT: abstract windowing toolkit

14 HOOFDSTUK 1. SITUERING 5 penlijstje bevatten. Als vormgeving werd er voor dit overzichtscherm gekozen voor een ijskast. Dit zou een herkenbare situatie voor de gebruiker moeten scheppen. Het zou tevens van een voldoende hoge grafische kwaliteit moeten zijn om de TV-ervaring van de gebruiker niet verloren te laten gaan. Eén van de eigenschappen die SMS gebruik van verschillende elektronische diensten kenmerkt is het tekstuele karakter. Op PC bestaat er een vergelijkbaar systeem dat ogenblikkelijke communicatie van kleine tekstberichten toelaat. Dit is instant messaging (IM). Het is in eerste instantie voor dit platform dat er een tekstuele interface zal ontworpen worden. Er zal later onderzocht worden of deze interface via SMS toegankelijk kan gemaakt worden. Het meest populaire open source IM protocol, met name Jabber, werd voor deze opdracht gekozen. Een eigenschap die Jabber van de andere IM protocollen onderscheidt is de mogelijkheid om met andere IM protocollen samen te werken. Voor de opbouw van de kalenderapplicatie werd er in eerste instantie onderzocht welke de bestaande kalender applicaties op PC zijn. Het belangrijkste dat hierbij werd vastgesteld is dat er één standaard is die vaak wordt gebruikt om kalendergegevens op te slaan. Dit is de icalendar standaard. Er zal dan ook van deze standaard gebruik gemaakt worden. Voor het uitwisselen van icalendar wordt er gebruik gemaakt van een WebDAV server. Er zal dan ook van zo n server gebruik gemaakt worden om de kalendergegevens op te slaan. Er moet namelijk rekening mee gehouden worden dat niet elke STB over een opslag capaciteit beschikt. Het gebruik van de WebDAV server geeft ons de mogelijkheid om FrigoTV in twee delen te splitsen. Een deel, de TV-GUI zal op een STB worden uitgevoerd. Het andere deel, de IM-Interface zal op een server worden uitgevoerd. Dit heeft verschillende voordelen. Als eerste beperkt het de belasting op de STB die zo laag mogelijk dient gehouden te worden. Tevens bevrijdt het ons bij het ontwikkelen van de IM-Interface toepassing van alle beperking die geldig zijn op het STB platform. Verder is de IM-Interface nu als een aparte optie in ons dienstenpakket beschikbaar. In figuur 1.4 wordt er een duidelijker beeld geschetst van deze architectuur. 1.5 Overzicht In het eerste deel worden de gebruikte technologieën besproken. Om te beginnen bespreken we in hoofdstuk 2 de hulpmiddelen die gebruikt werden. In de daaropvolgende hoofdstukken 3, 4, 5, en 6 worden de gebruikte standaarden verduidelijkt. Ook wordt er vermeld met welke programma bibliotheken het gebruik van deze standaarden gerealiseerd wordt. In het tweede deel wordt de werking en de opbouw van de applicaties gedetailleerder besproken. De werking van de TV-GUI wordt besproken in hoofdstuk 8. In de hoofdstukken 9, 10 en 11 wordt er dieper ingegaan op de opbouw van deze component. In hoofdstuk 12 wordt de werking van de IM-Interface besproken, de opbouw wordt besproken in hoofdstuk 13. In Hoofdstuk 14 wordt besproken hoe de toegang tot bestanden gerealiseerd wordt. Deze bestandstoegang wordt in beide toepassingen gebruikt. In een laatste deel bespreken we het opzetten van een concrete demo opstelling. Dit zo-

15 HOOFDSTUK 1. SITUERING 6 wel wat betreft de configuratie aan de server zijde als aan de client zijde van de verschillende benodigde componenten. Voor een goed begrip van de hoofdstukken 9, 10, 11, 13 en 14 is kennis van object georiënteerd programmeren in java noodzakelijk.

16 Deel I Gebruikte technologieën 7

17 Hoofdstuk 2 Ontwikkelings hulpmiddelen 2.1 Eclipse Eclipse is een open-source framework voor software-ontwikkelomgevingen. Daarnaast is Eclipse ook zelfstandig te gebruiken als krachtige Java-ontwikkelingsomgeving. Het is een zogenaamde IDE of Integrated Development Environment. Eclipse heeft een open structuur waardoor het mogelijk is de functionaliteit uit te breiden door middel van plug-ins. Deze applicatie kan gevonden worden op Figuur 2.1: Eclipse Eclipse wordt actief ondersteund door IBM, dat verschillende van zijn eigen producten, bouwt rondom de Eclipse-code. De naam Eclipse (zonsverduistering) is opmerkelijk, omdat de Javawereld gedomineerd wordt door concurrent Sun (zon). 8

18 HOOFDSTUK 2. ONTWIKKELINGS HULPMIDDELEN Log4j Deze java-bibliotheken worden gebruikt om de verschillende stappen die de applicatie doorloopt makkelijk te kunnen volgen. Dit om het debuggen te vergemakkelijken. Na het declareren van de logger kan met behulp van de hieronder vermelde commando s informatie vanuit de applicatie naar buiten gebracht worden. Deze bibliotheken maken deel uit van het open source project apache, bekend van de apache web server. Meer informatie is beschikbaar op private static final Logger log = Logger.getLogger(klasse.class); log.debug("string"); log.warn("string"); log.error("string"); log.fatal("string"); De manier waarop deze gegevens naar buiten gebracht worden kan ingesteld worden via een configuratie bestand, log4j.properties. Dit bestand moet zich in het build path van het project bevinden. 2.3 Lumbermill Dit is een applicatie die tijdens de ontwikkelingsfase gebruik kan worden om de door log4j verzamelde debug informatie overzichtelijk weer te geven. Ook dit is een open source project. De verschillende soorten informatie die log4j verzameld, worden elk met een specifieke kleur weergegeven. Lumbermill kan teruggevonden worden op Figuur 2.2: Lumbermill

19 Hoofdstuk 3 itv Middleware itv 1 Middleware bevindt zich tussen de hardware van de STB en de toepassingssoftware. (Figuur 3.1) Het zorgt voor decodering van de inkomende gegevens, gegevensverwerking, schermhandelingen en verwerking van de gebruikersinvoer. De itv Middleware maakt het simpeler om complexe applicaties te ontwikkelen. Het laat toe om toepassingen uit te voeren op elke STB waarop de itv Middleware draait. De ontwikkelaar van deze gebruikerstoepassingen hoeft geen rekening te houden met de specifieke hardware van de verschillende types STB. Figuur 3.1: itv Middleware Er zijn vele verschillende soorten itv middleware: MHP, MHEG, OpenCable, OpenTV, Microsoft TV, Liberate, NDS,... Deze middleware bieden een software ontwikkelingsomgeving, die toegang tot de functies die de STB aanbiedt, verleend. Er wordt meestal met C/C++ of java gewerkt. Eventueel is er ook HTML ondersteuning. Deze middleware kan in twee delen opgesplitst worden, de open en gesloten middleware. Deze delen komen overeen met respectievelijk een verticale en horizontale markt. 1 itv: interactieve televisie 10

20 HOOFDSTUK 3. ITV MIDDLEWARE Gesloten middleware Gesloten middleware komt overeen met verticale markt benadering. Interactieve televisie werd traditioneel beheerst door verticale betaal-tv waarbij de inhoud, de levering en het platform door hetzelfde bedrijf geleverd werden. Onder gesloten middleware valt onder andere OpenTV Core, MediaHighway, Microsoft TV, power TV, NDS, Liberty, Liberate,... Hoewel gesloten middleware een groot marktaandeel hebben en ongeveer dezelfde diensten bieden (soms zelfs meer) zijn er toch enkele ernstige nadelen aan verbonden. Er zijn te veel verschillende middleware verkopers die elk hun eigen middleware aanbieden voor verschillende marktsegmenten. Applicaties gebaseerd op gesloten middleware zijn niet herbruikbaar. Er zou dus door de programmeur bijvoorbeeld een aparte applicatie voorzien moeten worden voor de kabel- of satellietversie van de dienst. Bovendien is er aan gesloten middleware een licentiekost verbonden. Deze nadelen beperken sterk het markt potentieel van gesloten middleware. 3.2 Open middleware Open middleware correspondeert met een horizontale markt visie. Een open middleware is een standaard die voor de hele industrie bruikbaar is. Het kan door iedereen geïmplementeerd worden. Voorbeelden van open middleware zijn MHP, OpenCable, MHEG, DAVIC,... Op MHP zullen we in de volgende sectie dieper ingaan. 3.3 MHP MHP, ofwel Multimedia Home Platform, is een voorbeeld van open itv Middleware. MHP is een op java gebaseerde open standaard voor interactieve televisie. Deze standaard werd gedefinieerd door het DVB 2 consortium. Deze technologie is gebaseerd op bestaande open standaards zoals DVB, MPEG 3 en JavaTV. Deze standaard is nog steeds in volle ontwikkeling, de huidige versie is MHP 1.1. De integrale tekst die deze standaard beschrijft kan teruggevonden worden op De MHP software API is gemaakt met als doel de open middleware standaard voor alle interactieve TV applicaties te zijn. Het laat ontwikkelaars toe om te werken zonder rekening te moeten houden met de specificaties van een STB. MHP definieert een generische interface tussen de interactieve televisie applicaties en het platform waarop ze worden uitgevoerd. Deze interface ontkoppelt de verschillende toepassingen van de specifieke hardware en software details van verschillende MHP platform implementaties. Dit geeft leveranciers van digitale inhoud de mogelijkheid om alle verschillende types platformen, gaande van low-end tot high-end Set-Top boxen, geïntegreerde digitale televisietoestellen en multimedia PC s te ondersteunen. Enkele aspecten van MHP die voor ons belangrijk zijn, worden hieronder verder verduidelijkt. Het moet de lezer duidelijk zijn dat dit een zeer beperkte selectie is. Bijvoorbeeld DVB-HTML of toegang tot Smart Card lezers wordt hier volledig ter zijde gelaten. 2 DVB: Digital Video Broadcasting 3 MPEG: Moving Picture Experts Group

21 HOOFDSTUK 3. ITV MIDDLEWARE Invoer De meeste MHP ontvangers zullen gebruikersinvoer krijgen van een afstandsbediening. Hoewel invoer van een toetsenbord en eventueel zelfs een muis ook beschikbaar kan zijn, is het onwaarschijnlijk dat dit in veel gevallen gebruikt zal worden. Onze applicatie dient dan ook uitsluitend met een afstandsbediening gebruikt te worden. Tabel 3.1 geeft de door MHP gedefinieerde standaard afstandsbedieningtoetsen. Naam constante Toets Toets code VK UP boven pijl niet gestandaardiseerd VK DOWN onder pijl niet gestandaardiseerd VK LEFT linkse pijl niet gestandaardiseerd VK RIGHT rechtse pijl niet gestandaardiseerd VK ENTER enter (ook bekend als select of OK) niet gestandaardiseerd VK 0 tot VK 9 nummer toetsen VK TELETEXT teletext toets 459 VK COLORED KEY 0 eerste kleur toets (rood) 403 VK COLORED KEY 1 tweede kleur toets (groen) 404 VK COLORED KEY 2 derde kleur toets (geel) 405 VK COLORED KEY 3 vierde kleur toets (blauw) 406 Tabel 3.1: Afstandsbedieningstoetsen MHP Hoewel de afstandsbediening nog andere toetscodes kan genereren, zijn dit de enige waarvan de werking op elke ontvanger gegarandeerd wordt. Onze applicatie zal dan ook uitsluitend van de in Tabel 3.1 vermelde toetsen gebruikmaken. Een volledige lijst van gedefinieerde toetsen kan in de org.havi.ui.event.hrcevent klasse van de MHP specificatie gevonden worden Grafische weergave Het grafische model is waarschijnlijk één van de meest complexe delen van MHP. Er zijn namelijk vele verschillende zaken waarmee rekening moet worden gehouden wanneer we met afbeeldingen werken in een TV omgeving. Een aantal van de zaken waarmee er bijvoorbeeld rekening dient gehouden te worden, zijn: De pixel aspect ratio: Televisie en video toepassingen gebruiken vaak niet-vierkante pixels, terwijl grafische API s voor computer er veelal vanuit gaan dat pixels vierkant zijn. Aspect Ratio: Standaard TV werkt met een aspect ratio van 4:3, breedbeeld echter met een 16:9 aspect ratio of soms zelfs met 14:9. Kleur weergave: Op PC wordt er overwegend met RGB 4 gewerkt om kleuren voor te stellen op TV gebruikt men YUV 5, althans bij PAL. De omzetting tussen beiden wordt door MHP verzorgd. 4 RGB: Red Green Blue 5 YUV: Y luminance/brightness U and V chrominance/color

22 HOOFDSTUK 3. ITV MIDDLEWARE 13 Figuur 3.2: De 3 grafische lagen Een itv scherm wordt typisch opgebouwd uit minimum 3 lagen. (Figuur 3.2) Een achtergrondlaag, een video-laag en een grafische-overleg-laag. De achtergrond-laag is meestal slechts in staat om een stilstaand beeld weer te geven. Hierboven bevindt zich de video laag, hier worden de televisieprogramma s weergegeven. De bovenste laag is de grafische laag, hierop wordt er door de grafische operaties in MHP effectief getekend. Transparantie wordt door MHP ondersteund in verschillende gradaties. Er zijn er drie die gegarandeerd ondersteund worden: volledige, 30% en geen transparantie. MHP ondersteunt slechts vier types afbeeldingformaten namelijk; GIF, JPEG, PNG en MPEG I-Frame. Het kleuren palet is gelimiteerd tot 188 kleuren voor GIF, JPEG en PNG. MPEG I-Frame kan wel van het volledige kleurenpallet gebruik maken.

23 Hoofdstuk 4 ical ICal, ofwel internet calendar is een open standaard die een bestandsformaat definieert voor het opslaan van Kalender informatie. Internet Calendar wordt besproken in RFC De huidige versie is icalendar v2.0. De oudere versie icalendar v1.0 wordt soms ook vcal genoemd. De informatie wordt opgeslagen in plaintext-bestanden met extensie.ics. Mede dankzij de populariteit van het programma ical van Apple, dat enkel voor de Mac beschikbaar is, wordt dit bestandsformaat nu door vele verschillende applicaties ondersteund. 4.1 Kalender applicaties In volgende tabel wordt een overzicht gegeven van enkele van de programma s die ical ondersteunen, gegroepeerd naargelang platform: Mac OS X Linux Apple ical Evolution Mozilla Calendar Plug-in voor de gekende Mozilla browsers. (oa. Mozilla Firefox) Mozilla Sunbird De stand-alone versie van Mozilla Calendar. KDE Kontact Windows Mozilla Calendar Mozilla Sunbird Windates eventsherpa

24 HOOFDSTUK 4. ICAL 15 Calendar onvolledige Apple ical kloon Het ontbreken van, misschien wel het meest bekende kalenderprogramma, MS Outlook, is een zeer jammerlijke zaak. Hoewel Outlook ical niet volledig ondersteund, waardoor de echte voordelen van ical voor Outlook gebruikers onbeschikbaar zijn, is het wel mogelijk om gedownloade ical bestanden in te voeren. Het uitvoeren kan Outlook alleen per afspraak en niet als een volledige kalender. Door gebruik te maken van het programma outport, te vinden op kunnen we de kalendergegevens wel exporteren naar één ical-bestand. Dit moet dan gebeuren via de Evolution Calendar en Evolution Tasks opties, de icalendar optie van outport creëert weerom afzonderlijke bestanden per afspraak of taak. Taken en afspraken komen, door gebruik te maken van deze methode, nog steeds in twee afzonderlijke bestanden terecht. Deze werkwijze is getest met Outlook Verder zijn er ook nog enkele mogelijkheden om ical bestanden online weer te geven in een browservenster. Enkele voorbeelden hiervan zijn: Linux Brown Bear Calcium Web Calendar Perl CGI applicatie (platform onafhankelijk) PHPiCalendar PHP applicatie (platform onafhankelijk) Windows Brown Bear ical Web Calendar volledige server applicatie speciefiek voor kalender bestanden Brown Bear Calcium Web Calendar Perl CGI applicatie (platform onafhankelijk) PHPiCalendar PHP applicatie (platform onafhankelijk) Dit alles toont aan dat de ical standaard een wijde ondersteuning geniet en dus een uitstekende keuze vormt als bestandsformaat voor onze kalender applicatie. 4.2 Mogelijkheden Met de lancering van Apple ical werden er een paar nieuwe mogelijkheden toegevoegd aan de traditionele kalendertoepassingen. Het was nu mogelijk om meerdere verschillende kalenderbestanden tegelijk weer te geven. Het feit dat deze bestanden rechtstreeks gelezen en geschreven konden worden van een online locatie, zorgt ervoor dat er een hele nieuwe wereld open ging. Het is nu mogelijk om bepaalde kalenders publiek of aan een bepaalde groep mensen aan te bieden. Deze kalenderinformatie kan dan gewoon weergegeven worden tussen de privé kalender gegevens van de geabonneerde gebruiker. Wijzigingen in de publieke kalender worden onmiddellijk op de server gepubliceerd. Wanneer een gebruiker opnieuw zijn

25 HOOFDSTUK 4. ICAL 16 agenda raadpleegt zijn steeds de meest recente gegevens beschikbaar. Er is van synchronisatie geen sprake omdat alles wordt opgeslagen in een enkel bestand dat voor alle gebruikers toegankelijk is. Deze mogelijkheden maken het gebruik van complexe server applicaties zoals Microsoft Exchange of Novell GroupWise onnodig. De bestanden worden op een gewone webserver (http-server) geplaatst. Om deze mogelijkheden te verduidelijken worden hieronder enkele voorbeelden gegeven: Kalenders van allerhande clubs en verenigingen. Bijvoorbeeld: Beschikbaarheid van sportvelden of materieel voor sportclubs. Verzameltijden voor jeugdverenigingen. Activiteiten georganiseerd door studentenclub. Uurroosters van studenten: In dit verband is het misschien interessant om te verwijzen naar het open-source project UW Calendar van de Universiteit van Washington (http: // Lokale vuilnisomhaling De nationale voetbal competitie Hierna geef ik een overzicht van enkele sites die zich specialiseren in het aanbieden van ical bestanden. Ze beschikken over een uitgebreid archief van kalenders. ical Exchange: biedt een gratis locatie aan om kalenders op te slaan. Dit kan zowel voor publiek als privé gebruik zijn. De mogelijkheid om verschillende paswoorden te definiëren is een betalende optie. Hiermee is het bijvoorbeeld mogelijk paswoorden met leesen schrijftoestemming voor het bestuur aan te maken en paswoorden met enkel leestoestemming voor de leden. ( of icalshare: biedt de mogelijkheid om kalenders publiekelijk te delen. Het biedt eveneens de mogelijkheid om te bladeren en te zoeken door kalenders die zich reeds op deze server bevinden en zich er desgewenst op in te schrijven. ( 4.3 ical4j Mijn applicatie maakt gebruik van de java programma bibliotheken ical4j 2 om toegang te krijgen tot icalendar bestanden. Dit pakket kan gevonden worden op sourceforge.net/. De API die bij dit pakket hoort is beschikbaar op sourceforge.net/api/. Met dit pakket is het onder andere mogelijk ical bestanden te parsen door gebruik te maken van enkele zeer simpele regels programmacode Bestanden openen ICalendar bestanden zijn gewone tekstbestanden en kunnen dus met de gewone voorzieningen uit java worden ingelezen. Het codevoorbeeld hieronder geeft weer hoe men de java inputstream, met behulp van de ical4j klasse builder, omzet naar een icalendar klasse. 2 ical4j: internet calendar for java

26 HOOFDSTUK 4. ICAL 17 ICalendar icalendar; CalendarBuilder builder = new CalendarBuilder(); icalendar = builder.build(in); Hierin is in de inputstream die het ical bestand bevat. Hierna is de informatie die het bestand bevat simpelweg toegankelijk via de objecten: VALARM, VEVENT, VFREEBU- SY, VJOURNAL, VTIMEONE en VTODO. Onze toepassingen maken enkel gebruik van de component VEVENT. Toegang tot de achtereenvolgende componenten wordt als volgt gerealiseerd. for (Iterator i = icalendar.getcomponents().iterator(); i.hasnext();) { Component component = (Component) i.next(); if (component.getname() == Component.VEVENT) { VEvent ve = new VEvent(component.getProperties()); } } Wijzigingen Aangezien het gaat om een open source programma bibliotheek beschikt de gebruiker over de volledige broncode en staat het hem dus vrij om hier wijzigingen aan te brengen. Ik heb één wijziging aangebracht in het ical4j pakket. Om voor een duidelijk onderscheid te zorgen tussen de klassen, net.fortuna.ical4j.model.calendar en java.util.calendar, heb ik de naam van de eerste klasse veranderd van net.fortuna.ical4j.model.calendar naar net.fortuna.ical4j.model.icalendar. De klasse ICalendar bevat nu gegevens in ical formaat, de klasse Calendar bevat allerhande functies die handig zijn om met data te werken. Het opnieuw benoemen geeft u de mogelijkheid om beide klassen vanuit dezelfde klasse aan te roepen zonder dat de volledige pakketnaam steeds moet meegegeven worden.

27 Hoofdstuk 5 Jabber Jabber is een open protocol dat op XML gebaseerd is. Het kan gebruik worden voor Instant Messaging. Op Jabber gebaseerde software wordt gebruikt op duizenden servers verspreid over het internet en wordt door miljoenen mensen wereldwijd gebruikt. Deze getallen volgens de Jabber Software Foundation vind je terug op Het Jabber project is in 1998 begonnen door Jeremie Miller, de eerste belangrijke publieke publicatie gebeurde in mei Het belangrijkste product is Jabberd, een server waarmee Jabber clients verbonden worden zodat ze met elkaar kunnen chatten. Met deze server kunnen er zowel een privé Jabber netwerk opgezet worden (achter een firewall) of de server kan deel gaan uitmaken van het globale publieke netwerk. De belangrijkste kenmerken van jabber zijn de gedistribueerde aard van het IM systeem en het gebruik van XML streams. Een uniek kenmerk van het Jabber systeem is het gebruik van transports of gateways. Deze laten het de gebruikers toe verbinding te maken met netwerken die van een ander protocol gebruik maken: zoals AIM en ICQ, die van het OSCAR 1 protocol gebruik maken, MSN Messenger en Windows Messenger, die van de.net Messenger Service gebruik maken, SMS of . In tegenstelling tot multi-protocol-clients zoals Trillian of Gaim, zorgt Jabber voor toegang op het server niveau. Dit komt tot stand door communicatie via speciale gateway serviceses die op de server actief zijn. Elke Jabber gebruiker kan zich registreren bij één van deze gateways. De gebruiker moet enkel de informatie verstrekken die noodzakelijk is om op dat netwerk in te loggen. Hierna is communicatie met gebruikers van dat netwerk mogelijk alsof het Jabber gebruikers waren. Dit heeft tot gevolg dat elke client, die het Jabber protocol volledig ondersteunt kan gebruikt worden om toegang te krijgen tot elk netwerk waarnaar er gateways bestaan zonder dat er extra code nodig is in de client. De basis van het Jabber protocol wordt nu beheerd door de Jabber Software Foundation. Het is door de IEFT 2 aanvaard als standaard onder de naam XMPP 3, met RFC nummer Het wordt vaak beschouwd als een concurrent van SIMPLE 4, gebaseerd op het SIP 5 protocol, als het standaardprotocol voor instant messaging en aanwezigheidsmelding. Het 1 OSCAR: Open System for CommunicAtion in Realtime 2 IEFT: Internet Engineering Task Force 3 XMPP: Extensible Messaging and Presence Protocol 4 SIMPLE: SIP for Instant Messaging and Presence Leveraging Extensions 5 SIP: Session Initiation Protocol 18

28 HOOFDSTUK 5. JABBER 19 ontwerp van XMMP is echter bedoel om een meer algemene middleware voor communicatie tussen applicaties voor alle doeleinden te vormen. 5.1 Smack Om de communicatie tussen de applicatie en de Jabber server te verzorgen wordt er gebruik gemaakt van een programma bibliotheek. Er is een waaier aan programma bibliotheken voorhanden die voor XMPP communicatie kunnen instaan. Een overzicht van al deze pakketten kan gevonden worden op Een groot aantal van de keuzemogelijkheden die op deze site te vinden zijn vallen weg, aangezien het aangewezen is in het hele project enkel de java-programmeertaal te gebruiken. Uit de overgebleven bibliotheken werd Smack gekozen. Dit omdat bij de aanvang van het project Smack een van de meest volledige API s was die voor jabber beschikbaar was. Smack is een Open Source XMPP client bibliotheek voor instant messaging. Dat Smack enkel ondersteuning biedt voor het ontwerp van client toepassingen is geen bezwaar. Hoewel de applicatie op een server uitgevoerd zal worden is het ten opzichte van de Jabber server een client toepassing. De Smack bibliotheken kunnen gevonden worden op De documentatie over Smack is eveneens online te vinden op builds/smack/docs/latest/documentation/ en smack/docs/latest/javadoc/.

29 Hoofdstuk 6 WebDAV WebDAV is een IETF werkgroep. De afkorting staat voor Web-based Distributed Authering and Versioning. De term wordt ook gebruikt om te verwijzen naar het protocol dat deze groep definieerde. Dit protocol is veeleer een uitbreiding op het http protocol dan een protocol op zich. Na aanvang van het werk werd het duidelijk dat de afhandeling van zowel Distributed Authering als Versioning een te grote taak was zodat beide zaken gesplitst werden. De WebDAV groep besloot de versioning in eerste instantie niet meer in het opzet mee te nemen. Het protocol bestaat uit een set van nieuwe methoden en headers om in http gebruikt te worden. Dit protocol onderscheidt zich omdat het één van de eerste was dat van XML gebruikt maakt. WebDAV voegt de methoden in tabel 6.1 aan het http protocol toe. Methode PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK Omschrijving Ophalen van de eigenschappen van een resource. Gebruikt om meerder eigenschappen te veranderen of te verwijderen. Gebruikt om een resource van de ene naar de ander URI te kopiëren. Gebruikt om een resource van de ene naar de ander URI te kopiëren. Gebruikt om een resource van de ene naar de andere URI te verplaatsen. Gebruikt om toegang tot een resource te blokkeren voor andere processen. Om toegang te deblokkeren. Tabel 6.1: De WebDAV http extensies Een resource is een aan http specifieke term die ruwweg gedefinieerd wordt als hetgeen waarnaar een URI 1 verwijst. De WebDAV werkgroep werkt nog steeds verder aan een aantal uitbreidingen. 1 URI: Uniform Resource Identifier 20

30 HOOFDSTUK 6. WEBDAV Jakarta Slide Om toegang te krijgen tot een WebDAV server werd er gebruik gemaakt van de Jakarta Slide bibliotheken. Deze bibliotheken werden slechts in zeer beperkte mate gebruikt. Het is namelijk enkel voor het schrijven naar de server noodzaak om van de WebDAV uitbreidingen gebruik te maken. Lezen van de WebDAV server zelfs als hij beveiligd is, gebeurt steeds via het gewone http protocol. Dit kan dus ook steeds gebeuren met klassen die deel uit maken van de standaard java bibliotheken. Dit open source project is van de hand van de makers van de zeer bekende Apache webserver. Hoewel de applicatie ontworpen is voor gebruik op een server, wordt er toch uitsluitend van de client bibliotheken gebruik gemaakt. De toepassing is namelijk een client van de WebDAV server. Deze programma bibliotheek en meer informatie erover kan gevonden worden op De API vindt men op

31 Hoofdstuk 7 Javadoc Met javadoc kunnen er aan de hand van commentaar, dat rechtstreeks tussen de code wordt ingevoerd, automatisch HTML bestanden gegenereerd worden in de kenmerkende stijl van java-api 1 s. Een voorbeeld hiervan is: bijvoorbeeld de Java TM 2 Platform, Standard Edition, v API Specification. Dit is terug te vinden op 4.2/docs/api/. Het commentaar dat voor javadoc bestemd is onderscheidt zich van het normale java commentaar doordat de begintag een extra sterretje bevat. De javadoc compiler veronderstelt steeds dat het commentaar aangaande een bepaalde constante, variabele, klasse, constructor of methode zich onmiddellijk boven de respectievelijke declaratie bevindt. /* * normaal java commentaar */ /** * java commentaar bestemd voor de javadoc compiler */ Om het samenstellen van deze documentatie meer mogelijkheden te geven is het noodzakelijk uw commentaar van een aantal eenvoudige tags te voorzien. Verder in dit hoofdstuk een overzicht van enkele van de van deze tags waarvan ik veelvuldig gebruik gemaakt heb. Het aanroepen van de javadoc compiler kan op eenvoudige grafisch wijze gebeuren vanuit Eclipse. Meer informatie kan gevonden worden op: tooldocs/solaris/javadoc.html Deze tag wordt meestal onderaan de commentaarblok, behorend bij klasse, geplaatst. Hij wordt gebruikt om de auteur van deze klasse kenbaar te maken. /** author Koen De Voegt */ 1 API: Application Programming Interface 22

32 HOOFDSTUK 7. JAVADOC 23 Dit wordt gebruikt om te verduidelijken met welke parameters een bepaalde methode moet aangeroepen worden. /** text The text to be displayed by the label. size Sets the size of this label. dient om verduidelijking te geven bij de teruggegeven waarden van een methode. /** The value of the align property, one of the following constants * defined in ALabel: LEFT_ALIGNMENT, CENTER_ALIGNMENT, RIGHT_ALIGNMENT. */ Deze tag geeft See Also in het HTML bestand. Hiermee wordt meestal verwezen naar methoden die verwante functies hebben. De See-tag heeft de volgende package.class#member label Men kan respectievelijk het pakket, de klasse en het deel van de klasse waar naar verwezen wordt, opgeven. Deze verwijzingen zijn relatief, zodat het pakket en de klasse eventueel weggelaten kunnen worden. Ook het label kan weggelaten worden, in dit geval wordt gewoon de naam van definitie van de methode waarnaar verwezen wordt, gebruikt. /** ALabel#getHorizontalMargin() */

33 Deel II Ontwikkeling applicaties 24

34 Hoofdstuk 8 De TV-GUI Dit hoofdstuk geeft een overzicht van de functionaliteit van de TV-GUI en de verschillende elementen waarmee tijdens het ontwerp rekening werd gehouden. 8.1 Beperkingen De belangrijkste beperkingen zijn: Hoewel de software ontwikkeling op PC gebeurde, is de uiteindelijke toepassing voor gebruik op een STB 1 bedoeld. Er moest dus met de beperkingen die eigen zijn aan dit platform rekening gehouden worden. Er kan dus niet van alle standaard java bibliotheken gebruik gemaakt worden. De invoer moet gebeuren via een standaard afstandsbediening. Deze beschikt over een beperkte hoeveelheid toetsen waarvan er bovendien slechts enkele beschikbaar zijn, namelijk de cijfertoetsen 0-9, de vier richtingspijltjes, de selectieknop en de vier kleurknoppen. De codering van bestandsformaten die gebruikt kunnen worden zijn ook sterk beperkt. Deze formaten zijn GIF, JPEG, PNG, MPEG I-Frame. Ook qua kleurenpallet bestaan er beperkingen. In mijn applicatie werd er enkel van stilstaande beelden gebruik gemaakt. Deze werden allemaal naar het PNG-formaat geconverteerd. Al deze beperkingen zijn in de MHP 2 standaard uitgebreid gedefinieerd. 8.2 Structuur van de code Hoewel de TV-GUI vanuit het gebruikersstandpunt een afzonderlijke applicatie is, vormt het gezien vanuit het standpunt van de ontwikkelaar één geheel met de code van het AmigoTV project. Het was dus aangewezen de voor AmigoTV reeds uitgedachte structuur gewoon over te nemen. Voor mijn applicatie werden drie pakketten gebruikt: com.alcatel.rena.amigotv.client.gui.awt.* Dit pakket is de verzameling basiscomponenten die veelvuldig gebruikt worden om de GUI op te bouwen. 1 STB: set-top box 2 MHP: Multimedia Home Platform 25

35 HOOFDSTUK 8. DE TV-GUI 26 com.alcatel.rena.amigotv.client.gui.model.* Dit pakket bevat alle klassen die met de beheersing van de gegevens en de controle van het programmaverloop te maken hebben. com.alcatel.rena.amigotv.client.gui.* Dit pakket groepeert alle klassen die met de visuele voorstelling te maken hebben. Hoewel het overnemen van de structuur en delen van een reeds bestaande applicatie, een heleboel werk uitspaart, introduceert deze manier van werken wel een nieuwe moeilijkheidsgraad. Er moet namelijk werk geleverd worden gebaseerd op code die onvolledig is, die nog in constante evolutie is en die helemaal niet gedocumenteerd is. Dit laatste op uitzondering van zeer summiere commentaar die zich rechtstreeks tussen de code zelf bevindt. Om de samenwerking tussen softwareontwikkelaars die aan dezelfde code werken eenvoudiger te doen verlopen bestaan er versie-controle-systemen. Bij Alcatel werd er gebruik gemaakt van Subversion ook gekend onder de afkorting SVN. Dit alles zorgde ervoor dat het doorgronden van deze code dan ook zeer veel tijd in beslag nam. Een uitgebreidere bespreking van deze pakketten kan in de hoofdstukken 9, 10 en 11 teruggevonden worden. 8.3 De applicatie opstarten Als het AmigoTV-icoontje (Figuur 8.1) in de linker bovenhoek over het televisie beeld verschijnt, betekent dit dat de applicatie correct gestart is. Met de rode knop van de afstandsbediening wordt het login scherm van AmigoTV weergegeven. Met de groene knop komt men op het overzichtsscherm van de kalenderapplicatie. Hieronder worden de verschillende schermen, waaruit de kalenderapplicatie is opgebouwd, overlopen. Figuur 8.1: Het AmigoTV-icoontje 8.4 Het Overzichtsscherm Onderaan het scherm wordt in de gepaste kleur de functie van de knoppen op de afstandsbediening weergegeven. Dit zou voor de gebruiker een vertrouwd beeld moeten zijn aangezien ook Teletext op een gelijkaardige manier werkt. Om eenvoudige toegang tot de applicatie te garanderen moet er voor het uitlezen van gegevens enkel gebruik van de kleurtoetsen gemaakt worden. Verder werd het aantal schermen waaruit de applicatie opgebouwd is, bewust beperkt. Vanaf het overzichtsscherm kan men met de rode knop steeds terugkeren naar het normale televisieprogramma, dit naar analogie met AmigoTV. Met de groene knop kan vanuit het overzichtsscherm door de verschillende kalenderschermen gebladerd worden. Deze schermen zijn achteréénvolgens het Vandaag -, Morgen -, Deze Week - en Deze Maand -scherm.

36 HOOFDSTUK 8. DE TV-GUI 27 Figuur 8.2: Het Overzichtsscherm Met de gele knop wordt de meest recente notitie weergegeven. De Blauwe knop zorgt voor de weergave van het boodschappenlijstje. 8.5 Het Vandaag -scherm Dit scherm (Figuur 8.3) geeft een duidelijk overzicht van de huidige dag. Het toont een lijst van de afspraken die deze dag plaatsvinden en de tijdstippen waarop ze aanvangen en eindigen. Met de groene knop kan men verder gaan naar het Morgen -scherm. De rode knop kan gebruikt worden om opnieuw het overzichtsscherm te bereiken. De functionaliteit van de rode toets blijft verder in de applicatie onveranderd. Figuur 8.3: Het Vandaag -scherm

37 HOOFDSTUK 8. DE TV-GUI Het Morgen -scherm In Figuur 8.4 worden op identieke wijze als in het Vandaag -scherm de afspraken van de op vandaag volgende dag weergegeven. De groene toets brengt u nu verder naar het weekoverzicht. Figuur 8.4: Het Morgen -scherm 8.7 Het Deze Week -scherm Dit scherm (Figuur 8.5) geeft een overzicht van de afspraken van de huidige week. De beginen eindtijd van de afspraken worden wegens plaatsgebrek niet meer weergegeven. De eventueel te lange omschrijving van de afspraak wordt automatisch afgekort tot de juiste breedte van de kolom. Het weekend wordt in mat blauw weergegeven. Figuur 8.5: Het Deze Week -scherm

38 HOOFDSTUK 8. DE TV-GUI Het Deze Maand -scherm Op het Deze Maand -scherm (Figuur 8.6) wordt een overzicht van de volledige maand gegeven. De afspraken worden ingekort zoals dat ook bij het weekoverzicht gebeurd, bovendien worden nu enkel de eerste twee afspraken van de dag getoond. De weekends worden net zoals bij het Deze Week -scherm in het lichtblauw weergegeven en de huidige dag in het donkerblauw. Figuur 8.6: Het Deze Maand -scherm 8.9 Het Notitie -scherm Door vanaf dit scherm (Figuur 8.7) herhaaldelijk op de gele toets te drukken kan er op cyclische wijze door de verschillende aanwezige notities gebladerd worden. Dit gebeurt chronologisch te beginnen met de meest recente notitie. Met de rode knop kan er zoals steeds naar het overzichtsscherm worden teruggekeerd. Figuur 8.7: Het Notitie -scherm

39 HOOFDSTUK 8. DE TV-GUI Het Boodschappen -scherm Deze functionaliteit is in de traditionele PIM s 3 ongezien. Het biedt de gebruiker de mogelijkheid om op één centrale plaats een boodschappenlijstje, samengesteld door de verschillende familieleden, bij te houden. Deze functie komt uiteraard maar ten volle tot haar recht indien men daadwerkelijk over mobiele toegang tot zijn gegevens beschikt. Dit zou er dan voor moeten zorgen dat, vanuit de supermarkt bijvoorbeeld, steeds de meest recente boodschappenlijst opgevraagd kan worden. Figuur 8.8: Het Boodschappen -scherm 8.11 Gegevensopslag Voor het opslagen van de kalendergegevens die de applicatie verzamelt, werd er gezocht naar een reeds bestaand bestandsformaat. Het werd na enig opzoek werk duidelijk dat er één standaard was die veruit de ruimste ondersteuning genoot. Toen bleek dat er bovendien Open Source bibliotheken bestonden die de toegang tot deze bestanden sterk vereenvoudigen lag onze keuze vast. Er werd gekozen voor het icalender (ical) bestandstype. Meer informatie over ical kan gevonden worden in Appendix 4. Bestanden kunnen zowel lokaal als op afstand opgeslagen worden. Dit is noodzakelijk omdat niet elke STB over opslagcapaciteit beschikt. De op afstand opgeslagen bestanden kunnen zich zowel op een beveiligde als op een publiek toegankelijke server bevinden. De bestandstoegang wordt uitgebreider besproken in hoofdstuk 14. De applicatie is tot op heden niet configureerbaar. Dus het gebruik van al deze mogelijkheden is voorlopig enkel hardcoded te verwezenlijken. 3 PIM: Personal Information Managers

40 Hoofdstuk 9 Het AWT pakket In dit hoofdstuk worden de basis elementen besproken die nodig zijn om een GUI op het interactieve televisie platform op te bouwen. Dit opbouwen van basiscomponenten is nodig om een applicatie te krijgen die compatibel is met de MHP standaard, waarover meer in Sectie 3.3. Andere AWT pakketten, zoals java.awt, zijn ontwikkeld voor de verschillende PC platformen niet voor een STB. Deze AWT s zijn dan ook niet bruikbaar op een platform voor interactieve televisie waar specifieke beperkingen, zoals voorgeschreven in de MHP standaard, gelden. Het basiswerk voor de Alcatel-Awt werd gedaan door Michael Brackx. In dit hoofdstuk bespreek ik de klassen die ik aan het AWT pakket heb toegevoegd of waaraan ik aanzienlijke wijziging heb gedaan. Via Javadoc werd er over deze componenten een uitgebreide documentatie samengesteld. Deze is beschikbaar op de CD-ROM in bijlage. Meer over het aanmaken van deze javadocs kan in Appendix 7 gevonden worden. Voor de uitbereidingen die gemaakt werden, werd indien mogelijk gestreefd naar een naamgeving en functionaliteit die de naamgeving en functionaliteit van de java-awt zo sterk mogelijk benaderd. 9.1 De AComponent en AAbstractComponent klassen Dit zijn twee zeer fundamentele componenten. In het oorspronkelijke Alcatel AWT pakket werd er steeds met lay-outs gewerkt waarbij de container zijn grootte aangepast werd aan de inhoud die hij op dat moment bevatte. (Bijvoorbeeld de LeftGrowingLayout) Dit is niet steeds bruikbaar indien men wisselende hoeveelheden gegevens op een overzichtelijke manier wil weergeven. Een maandoverzicht waarop alleen de dagen zichtbaar zijn waarop er reeds iets gepland is, zou toch wel zeer onoverzichtelijk zijn bijvoorbeeld. Het was dus noodzakelijk nieuwe lay-outs te maken die op een fundamenteel andere manier werken dan diegene die reeds in ons pakket bestonden, maar die toch moesten voldoen aan de vooraf gedefinieerde interfaces. Bij deze lay-outs, zoals GridLayout bijvoorbeeld, wordt de ruimte die in de container beschikbaar is verdeeld over de verschillende componenten die hij bevat. Dit maakt het noodzakelijk om met twee verschillende afmetingen te werken, namelijk de size en preferredsize. De size bepaalt de afmetingen die daadwerkelijk weergegeven zullen worden. De preferredsize bevat een richtgrote die slechts in bepaalde gevallen gebruikt wordt. Zo zal een BoxLayout bijvoorbeeld afhankelijk van zijn instelling enkel de hoogte of de breedte van deze preferredsize 31

41 HOOFDSTUK 9. HET AWT PAKKET 32 gebruiken maar nooit beide. Omdat alle grafische componenten aan een lay-out moeten toegewezen kunnen worden, was het nodig ondersteuning voor deze preferredsize in de absolute basis klassen, waarop de hele AWT gebouwd is, in te voegen. Deze basisklassen zijn AComponent en AAbstractComponent. Aan de interface AComponent werden de methoden setpreferredsize, getpreferredsize toegevoegd zodat zij vanuit alle afgeleide klassen steeds toegankelijk zijn. In de abstracte klasse AAbstractComponent worden de methoden setpreferredsize, getpreferredsize daadwerkelijk geïmplementeerd. Ook het attribuut preferredsize dat de daadwerkelijke gegevens bevat wordt hierin gedefinieerd. 9.2 De ALabel klasse Deze component bestond ook reeds, maar was zeer beperkt in mogelijkheden. Er kon alleen gecentreerde tekst weergegeven worden. Door toevoegen van de methode setalign(int align) werd er voor gezorgd dat de tekst nu rechts, links of gecentreerd kan worden weergegeven. Men roept deze methode best aan met als argument één van deze constanten: ALabel.RIGHT ALIGNMENT, ALabel.LEFT ALIGNMENT of ALabel.CENTER ALIGN- MENT. Met de methode sethorizontalmargin(int horizontalmargin) kan er een marge worden ingesteld die er voor zorgt dat de links of recht uitgelijnde tekst niet tegen de rand van het label aan plakt. In Figuur 9.1 zien we bovenaan een gecentreerd label met als tekst Note en onderaan een rechts uitgelijnd label met als tekst Jessy. Figuur 9.1: ALabel en AMultilineLabel

42 HOOFDSTUK 9. HET AWT PAKKET De AMultilineLabel klasse AMultilineLabel is een uitbereiding van ALabel. Het zal de tekst die het moet weergeven automatisch verdelen over verschillende lijnen afhankelijk van de breedte die voorzien is om het label weer te geven. Hierbij kan men de tekst uitlijnen met behulp van dezelfde methoden die in ALabel beschikbaar zijn. In Figuur 9.1 zien we hoe een AMultilineLabel gebruikt wordt voor de weergave van een Post-it. In bijlage kan het algoritme gevonden worden dat ontwikkeld werd om een String over verschillende lijnen af te drukken. (Sectie A.1) 9.4 De AShortLabel klasse Ook AShortLabel is een uitbereiding van ALabel. Indien er te weinig plaats is in een label om alle karakters van de toegewezen string weer te geven zal dit type label er voor zorgen dat de tekst wordt afgebroken op de juiste plaats en dat er op die plaats... 1 wordt weergegeven. Een voorbeeld hiervan is te zien in Figuur 9.2, waarin zowel het woord multimedia als DSP zich elk in een afzonderlijk AShortLabel bevinden. Figuur 9.2: AShortLabel 9.5 De AList klasse De klasse AList is een extensie van de klasse AContainer. Deze klasse biedt de mogelijkheid om verschillende AComponents te groeperen. Deze componenten worden dan onder elkaar geschikt. Er kan met de methode add zowel één component als een List van Componenten toegevoegd worden. Componenten die niet weergegeven kunnen worden op de beschikbare plaats, worden wel steeds opgeslagen. De AList wordt veelvuldig gebruikt om afspraken weer te geven in de verschillende kalenderschermen. Voorbeelden van een AList zijn onder andere te zien in Figuur 9.2 en De BoxLayout klasse BoxLayout is een implementatie van ALayout. De klasse heeft twee constructoren BoxLayout() en BoxLayout(int axis). Als de eerste constructor gebruikt wordt, worden de componenten via de standaard waarde, de Y-as, geordend. Met de tweede constructor kan er bepaald worden via welke as er gewerkt moet worden. Als waarde voor de axis variabele kan men best één van twee constanten, BoxLayout.X AXIS of BoxLayout.Y AXIS, nemen. Indien deze lay-out met de methode setlayout() aan een container (AContainer) wordt toegekend 1 unicode teken \u2026

43 HOOFDSTUK 9. HET AWT PAKKET 34 worden alle componenten die deze container bevat geordend volgens de ingestelde as. (X-as van links naar rechts, Y-as van boven naar onder) Indien de X-as/Y-as geselecteerd werd zullen de componenten de hoogte/breedte van de container overnemen. De breedte/hoogte wordt gelijk aan de waarde preferredsize.width/preferredsize.height. De laatst toegewezen component krijgt steeds alle overige ruimte. In Figuur 9.3 werd er van een BoxLayout gebruik gemaakt. Het scherm is opgebouwd uit een ALabel (met de tekst Today ), een AImage (de lijn) en een AList (die de uren en afspraken bevat). Figuur 9.3: BoxLayout 9.7 De GridLayout klasse GridLayout is eveneens een implementatie van ALayout. De standaard constructor van Grid- Layout voorziet een rooster van 3 rijen en 3 kolommen. Via de constructor GridLayout(int cols, int rows) kan er een rooster verkregen worden met een willekeurig aantal rijen en kolommen. De componenten zullen de rooster van links naar rechts en van boven naar beneden invullen. Er kunnen al dan niet rasterlijnen weergegeven worden door de methode setshow- Lines(boolean showlines) te gebruiken. Indien de ruimte die in de container voorzien is niet volledig gelijkmatig verdeeld kan worden over de verschillende rijen en kolommen, wordt het eventuele overschot aan de aan de rechtse kolom en onderste rij toegewezen. In Figuur 9.4 wordt er van een GridLayout met rasterlijnen gebruik gemaakt. In sectie A.2 van de bijlagen kan de code die voor de uitlijning van de aan een gridlayout toegevoegde elementen zorgt. Figuur 9.4: GridLayout

44 Hoofdstuk 10 Het Model pakket In het pakket Model bevinden zich alle klassen die te maken hebben met de loop van het programma en met de verwerking van gegevens. In dit hoofdstuk worden de klassen besproken die ik aan dit pakket heb toegevoegd en diegene waaraan ik aanzienlijke toevoegingen heb gedaan. De klassen die ik zelf geschreven heb, zijn DayView, WeekView, MonthView, NoteView en GroceryListView, gegroepeerd in de sectie De -View klassen (Sectie 10.1) en FridgeTV (Sectie 10.3). Van deze klassen zijn er op de bijlage-cd-rom javadocs beschikbaar. Verder worden de klassen Models, ModelsView, ScenesImpl, ScenesViewItf en NormalTV besproken. In deze klassen waren toevoegingen nodig om de applicatie te laten werken volgens de door de AmigoTV ontwikkelaars reeds vooropgestelde principes De -View klassen De klassen DayView, WeekView, MonthView, NoteView en GroceryListView zijn de klassen die gegevens verzorgen voor de overeenkomstige klassen DayViewUI, WeekViewUI, Month- ViewUI, NoteViewUI en GroceryViewUI. Het zijn allen klassen die een extensie zijn van de abstracte klasse AbstractMenu. De Constructors van de klassen DayView, WeekView en MonthView worden telkens opgeroepen met als parameter de naam van het ICalendar bestand dat alle kalender gegevens bevat van onze gebruiker. Dit ical bestand wordt dan ingelezen met behulp van de klassen besproken in Sectie Hierna halen deze drie klassen dan de gepaste informatie op uit het ICalendar object en slaan die informatie op in een ArrayList. De respectievelijke -UI klasse zal deze gegevens uit de ArrayList terug ophalen en op het scherm weergeven. Bij DayView moet er als parameter eveneens meegegeven worden om welke dag het gaat (Vandaag of morgen). Dit gebeurt door middel van de constanten DayView.TODAY of DayView.TOMORROW. Dit omdat de klasse DayView zowel gebruikt wordt om de gegevens over vandaag als over morgen op te slaan. Hierbij vermelden we dat er aan DayViewUI niks specifiek moet worden doorgegeven. De klasse NoteView wordt opgeroepen met als parameter een object van de klasse NoteList dat alle notities bevat. De klasse GroceryListView met een object van de klasse GroceryList. Al deze klassen staan tevens in voor het bijhouden van de labels die bij de verschillende 35

45 HOOFDSTUK 10. HET MODEL PAKKET 36 kleurknoppen op de afstandsbediening horen en die onderaan elk applicatiescherm worden weergegeven. Deze labels worden via de methoden getgreenlabel(), getyellowlabel() en get- BlueLabel() opgevraagd door de klasse CommandBarUI die wordt besproken in Sectie Merk op dat het rode label, dat doorheen al de verschillende toepassingsvensters hetzelfde label en functie behoudt, hier niet wordt bijgehouden. Ook de functies die de kleurknoppen moeten vervullen, wederom met uitzondering van de rode kleurknop, worden in deze klassen bijgehouden, meer bepaalt in de methoden: ongreen- Command(), onyellowcommand() en onbluecommand(). Deze methoden moeten er in onze applicatie meestal enkel voor instaan dat de huidige -View wordt verborgen en dat de correcte -View zichtbaar wordt. De code waarin in de klasse DayView gebruik wordt gemaakt om de list in te vullen is terug te vinden in sectie A.3 van de bijlagen De NormalTV klasse Hier wordt de verwerking van de invoer gedaan die tijdens het gewone TV kijken wordt ontvangen. Deze klasse luistert enkel naar de vier kleur knoppen. Waarvan er slechts twee daadwerkelijk gebruikt worden: De rode om AmigoTV te starten en de Groene om FrigoTV te starten. Deze laatste functionaliteit toevoegen was dus ook het enige dat er aan deze klasse gewijzigd moest worden. Dit gebeurt door de reeds bestaande methode ongreencommand() in te vullen. De methode showfridgescreen() uit de hieronder besproken klasse (Sectie 10.7) ScenesImpl wordt hier aangeroepen De FridgeTV klasse Deze klasse is een extensie van AbstractCommandBarModel en een implementatie van CommandBarModel. De klasse FridgeTV is de models klasse die geladen wordt wanneer er tijdens het normale TV kijken op de groene knop gedrukt wordt. Het staat in voor de labels die worden weergegeven wanneer er geen enkele -View geladen is. Ook de functionaliteit die bij deze labels hoort zit in deze klasse. Dit alles verloopt analoog met de werking van de -View klassen. Dus via onder andere de methoden: getgreenlabel(), ongreencommand(),... De FridgeTV klasse is geen extensie van AbstractMenu zoals de -View klassen (Sectie 10.1) omdat het geen gegevens bevat. In tegenstelling tot de NormalTV klasse (Sectie 10.2) worden de labels hier wel weergegeven, de interface om dit te verwezenlijken is de CommandBarModel klasse De Models klasse In deze klasse wordt er van elke verschillende -View klasse een concreet object aangemaakt. Deze objecten hebben steeds dezelfde naam als de overeenkomstige klasse. Dit op uitzondering van de eerste letter. Bij een klasse begint de naam steeds met een hoofdletter. De naam van het afgeleide object begint steeds met een kleine letter. Deze manier van werken is gebruikelijk in het java programmeren. Van de klasse DayView worden hier zowel een object todayview als tomorrowview gemaakt. Aan de vier views die kalender gegevens weergeven, namelijk todayview, tommorowview weekview en monthview, wordt eveneens de bestandsnaam van het te openen kalender bestand als parameter doorgegeven. De klassen noteview en grocerylistview worden geïnitialiseerd met als parameter respectievelijk een notelist en een

46 HOOFDSTUK 10. HET MODEL PAKKET 37 grocerylist. Deze worden, door de methoden InitData.initNotes en InitData.initGroceries uit te voeren, gevuld met voorbeeld waarden De ModelsView klasse Deze klasse zorgt voor de link tussen het Model-pakket en het Gui-pakket. Voor elke bestaande -view wordt er hier een methode voorzien die het mogelijk maakt om deze -views op te roepen vanuit een -UI klasse. Dit gebeurt in de kalender applicatie enkel in de klasse FridgeTVUI (Sectie 11.5) De ScenesViewItf klasse Aan deze interface klasse wordt enkel een constante string toegevoegd met als naam FRID- GETV en als waarde fridgetv. Deze string zal in het pakket gui gebruikt worden om te controleren welke model klasse geladen moet worden om een gegeven scène weer te geven. Een scène is een samenstelling van verschillende elementen die samen worden weergegeven. Een scène bevat bijvoorbeeld een achtergrond, commandbar en één of meerdere views of menu s die al dan niet zichtbaar zijn. Andere scènes zijn bijvoorbeeld normaltv, die enkel het AmigoTV icoontje bevat, of login, het AmigoTV loginscherm De ScenesImpl klasse In deze klasse wordt door één van de constanten, waarover in de vorige sectie (Sectie 10.6) sprake was, toe te kennen aan de variabele scene, bijgehouden in welke Scène we ons op dit ogenblik daadwerkelijk bevinden. In deze klasse blijven de benodigde wijzigingen dan ook zeer beperkt. Er wordt hier enkel de methode showfridgescreen() toegevoegd. In deze methode wordt de variabele scene op FRIDGETV gezet. Ook wordt de enable methode van de juiste scène aangeroepen zodat de toetsaanslagen nu door deze scène afgehandeld kunnen worden. Hierna is het nog noodzakelijk de methode triggerscenechanged aan te roepen zodat de wijzigingen ook daadwerkelijk zullen weergegeven worden.

47 Hoofdstuk 11 Het GUI pakket De grafische gebruikers interface van de kalenderapplicatie wordt opgebouwd uit een grote verzameling klassen. Deze klassen zijn onder andere de eerder reeds vermelde klassen: DayViewUI, WeekViewUI, MonthViewUI, NoteViewUI en GroceryListViewUI, de klasse FridgeTV, die het overzichtsscherm weergeeft, InternalFrameUI, de ouderklasse van de verschillende - ViewUI klassen en de DayOfMonthUI klasse, bevat één dag op een maand en week overzicht. Verder zijn er ook in dit pakket wijzigingen aangebracht in verschillende reeds bestaande klassen, namelijk: CommandBarUI, DefaultSkin, ScenesUI, Gui, Images en Constants. Van de klassen die volledig door mij werden geschreven zijn de javadocs beschikbaar op de CD-ROM De InternalFrameUI klasse Deze klasse werd aangemaakt om een basisklasse te hebben voor de verschillende -ViewUI klassen. In AmigoTV worden deze voorgrondcomponenten steeds op AbstractMenuUI gebaseerd. Klasse die hierop gebaseerd zijn leveren een menu op waarin elk element geselecteerd kan worden. In de kalenderapplicatie kunnen geen elementen geselecteerd worden. Internal- FrameUI is dus een vereenvoudigde versie van AbstractMenuUI die geen ondersteuning voor selectie biedt. InternalFrameUI is op zijn beurt een extensie van AContainer, zodat ook al de afgeleiden van InternalFrameUI door overerving hiervan afgeleid zijn De -ViewUI klassen Al deze klassen zijn een extensie van de InternalFrameUI klasse. Deze klassen bevatten de opbouw van de grafische componenten. Ze maken hiervoor veelvuldig gebruik van de componenten uit het AWT pakket. Verder bevatten ze allen een methode layout. Deze methode zorgt er voor dat effectieve kalendergegevens worden weergegeven. Het leest daarvoor gegevens in uit een ArrayList. Deze ArrayList wordt van zijn elementen voorzien door de overeenkomstige -View klasse. Indien de gegevens veranderen is dit de enige methode uit de -ViewUI die moet worden aangeroepen om de veranderingen weer te geven De DayViewUI klasse Deze klasse wordt zowel voor de weergave van het vandaag - als het morgen -scherm gebruikt. De weergave wordt opgebouwd door een BoxLayout(Sectie 9.6) in de Y-richting te 38

48 HOOFDSTUK 11. HET GUI PAKKET 39 gebruiken. Hieraan wordt achtereenvolgens een ALabel, een AImage en een AList toegevoegd. Verder wordt er een nog achtergrond afbeelding ingesteld. De achtergrond die in het huidige ontwerp gebruikt wordt kan op een eenvoudige en snelle manier vanuit code gegenereerd worden. Het gebruiken van een afbeelding kan hier dan ook vooral gezien worden als voorbereiding op een meer grafische vormgeving in toekomstige versies. De code waar de gegevens uit de list worden opgehaald en op het scherm worden weergegeven is terug te vinden in bijlage sectie A.5. Verder wordt er in sectie A.4 weergeven hoe het scherm opgebouwd wordt De WeekViewUI klasse De basisstructuur van deze klasse is opnieuw een boxlayout volgens de Y-as. Met hierin een ALabel, een AImage en een AContainer. Aan deze container wordt dan een GridLayout toegewezen met één rij en zeven kolommen. Aan elk van deze zeven kolommen wordt een DayOfMonthUI toegevoegd. De weekdag waarmee een week begint wordt bepaald door de methode getfirstdayofweek van de klasse Calendar te raadplegen. Dit is afhankelijk van de Windows instellingen De MonthViewUI klasse Hier wordt er als basis ook weer hetzelfde stramien gebruikt. Een BoxLayout (Y-as), met een ALabel, een AImage en een AContainer. Deze klasse maakt dan gebruik van een andere layout, namelijk de GridLayout om aan de AContainer toe te wijzen. Met behulp van deze layout wordt een rooster gecreëerd van 7 op 5 of 7 op 6. Dit omdat sommige maanden gespreid zijn over vijf en sommige over zes weken. De weergave van de afzonderlijke dagen word wederom door de klasse DayOfMonthUI verzorgd De DayOfMonth klasse De DayOfMonth klasse wordt zoals eerder reeds vermeld, gebruikt om de afzonderlijke dagen weer te geven. Dit zowel in het Deze Week -scherm als in het Deze Maand -scherm. Verschillende instellingen bepalen het uitzicht van deze klasse. De dag en datum worden als parameters doorgegeven aan de constructor. Via de methode setevents worden de afspraken van de dag doorgegeven. Methode setlongheader wordt gebruikt om het onderscheid te maken tussen de twee voorstellingswijzen. De ene met enkel de dag voluit gecentreerd die bij het Deze Week -scherm gebruikt wordt. Dit is de LongHeader voorstelling. De andere met de afgekorte dag links bovenaan en de datum rechts bovenaan zoals die in het Deze Maand -scherm gebruikt wordt. Beide voorstellingswijzen worden opgebouwd door gebruik te maken van een BoxLayout volgens de Y-as. Bij de LongHeader voorstelling bevat deze BoxLayout een ALabel, met de gecentreerde dag en een AList. Bij de andere voorstelling bevat deze BoxLayout een AContainer en een AList. De AContainer bevat op zijn beurt twee ALabels één links en één rechts uitgelijnd. Deze worden geordend door een BoxLayout volgens de X-as. Ze bevatten respectievelijk de verkorte dag en de datum. Met de methode setweekday wordt er bepaald of het een week- of weekenddag is. Dit vertaalt zich in een wijziging van de achtergrondkleur. De methode setweekday zorgt eveneens voor een wijziging van de achtergrond kleur. Dit om de huidige dag aan te geven. De RGB waarden van de kleuren die in de applicatie gebruikt werden, werden bepaald met behulp van deze website:

49 HOOFDSTUK 11. HET GUI PAKKET De CommandBarUI klasse De wijzigingen, die in deze klasse aangebracht werden, hebben niet alleen effect op de kalender applicatie maar ook op AmigoTV. De CommandBarUI is verantwoordelijk voor het weergeven van de labels, die bij de kleurenknoppen op de afstandsbediening horen. In de oorspronkelijke applicatie werden deze labels steeds weergegeven op een zwarte balk onderaan. Om deze weergave mooier te maken werd er beslist deze zwarte balk weg te laten. Om te garanderen dat de labels echter nog steeds voldoende duidelijk weergegeven werden op elke achtergrond moest er een zwarte rand voorzien worden rondom alle letters van de vier labels. Op Figuur 11.1 is het verschil tussen beide implementaties van de CommandBarUI zichtbaar. Figuur 11.1: Twee versies van de CommandBarUI klasse 11.5 De FridgeTVUI klasse Dit is een uitbreiding van de klasse AContainer. Aan deze container worden al verschillende elementen toegevoegd die in deze sce ne zichtbaar kunnen gemaakt worden. Dit zijn dus de achtergrond afbeelding, alle -ViewUI klassen en de commandbarui. De -ViewUI klassen worden dus reeds bij het weergeven van de sce ne geladen De DefaultSkin klasse In deze klasse kunnen verschillende constante waarden voor de verschillende -ViewUIs ingesteld worden. Er wordt de locatie op het scherm van de verschillende -ViewUIs bijgehouden, het lettertype, de kleur van het lettertype, evenals als de klassen die bij de verschillende -ViewUIs horen De ScenesUI klasse ScenesUI zorgt ervoor dat de juiste sce ne wordt weergegeven. Dit gebeurt door de verschillende constanten in ScenesViewItf (Sectie 10.6) te vergelijken met de variabele waarde die de methode getscene uit de klasse Models teruggeeft. Hier moet de sce ne FridgeTV toegevoegd worden.

50 HOOFDSTUK 11. HET GUI PAKKET De Gui klasse Dit is het bestand dat als eerste wordt aangeroepen als de applicatie gestart wordt. In de keylistener klasse worden bepaalde toetsaanslagen opgevangen. Deze toetsen worden tijdens de ontwikkelingsfase gebruikt om de applicatie te bedienen. Bepaalde toetsen op het toetsenbord nemen de functie van de knoppen op de afstandsbediening over. Tabel 11.1 geeft een overzicht van alle toetsen waar op de applicatie mogelijk kan reageren. Afstandsbediening boven onder links rechts OK rood groen geel blauw Toetsenbord a & pijl boven d & pijl onder pijl links pijl rechts s & spatie u i o p Tabel 11.1: Afstandsbedieningstoetsen TV-GUI Voor een makkelijke bediening van de applicatie werden er aan de voor AmigoTV reeds gedefinieerde toetsen, nog enkele toetsen toegevoegd. Met name de pijltjes en de spatiebalk De Images klasse De init methode van deze klasse wordt tijdens het opstarten van de applicatie aangeroepen. In deze methode bevinden zich verwijzingen naar alle klassen die van afbeeldingen gebruikmaken. Deze klasse maakt deel uit van het mechanisme om alle afbeeldingen op voorhand in te laden zodat de applicatie op een vlotte manier kan werken De Constants klasse Deze klasse wordt er enkel voor gebruikt om bepaalde constanten die veelvuldig in de applicatie gebruikt worden te groeperen. Deze klasse bevat dus geen constructoren of methodes. Het lettertype dat in de TV-GUI gebruikt wordt, wordt in de constante FRIDGETV FONT opgeslagen. Dit font wordt in alle -ViewUI klassen gebruikt.

51 Hoofdstuk 12 De IM-Interface Deze applicatie zorgt ervoor dat de kalendergegevens toegankelijk worden via de verschillende IM clients, zoals MSN, ICQ, Yahoo!, AOL en jabber Werking De gebruiker zal op zijn IM client een contactpersoon moeten toevoegen die geen echte persoon voorstelt maar waarachter de toepassing schuil gaat. Men zal dan via het zenden van gewone berichtjes naar deze contactpersoon gegevens kunnen opvragen en gegevens kunnen wijzigingen. Dit kan natuurlijk door de verschillende familieleden vanaf verschillende plaatsen tegelijkertijd gebeuren. Er moet echter wel rekening gehouden met een zekere syntax om de juiste werking van de applicatie te garanderen. Er is bewust gekozen om deze syntax zeer eenvoudige en natuurlijk te houden. De commando s zijn niet hoofdletter gevoelig. De applicatie antwoordt steeds door samen te vatten welke wijzigingen er gemaakt werden Afspraken Het opvragen van kalendergegevens gebeurt via de commando,s vandaag en morgen. Kim zegt: vandaag FrigoTV zegt: De afspraken van vandaag zijn: 08:30-15:40 School 17:30-19:00 Bij Oma gaan eten 20:00-22:00 Huiswerk maken bij Joyce Het toevoegen van een afspraak aan de kalender gebeurt door te werken met het commando afspraak gevolg door ofwel vandaag ofwel morgen. Dan komt er eventueel de beginen eindtijd. Deze tijden kunnen weggelaten worden. Indien er één tijd meegegeven wordt dan zal zowel de begin- als eindtijd deze waarde aannemen. Als er geen enkel uur wordt meegegeven wordt er een afspraak voor de ganse dag gemaakt. De uren dienen steeds in 24u-notatie gegeven te worden. Het opgegeven uur mag uit één of twee cijfers bestaan. De minuten moeten steeds uit twee cijfers bestaan. Er mogen geen seconden meegegeven worden. 42

52 HOOFDSTUK 12. DE IM-INTERFACE 43 Er wordt verondersteld dat alle afspraken op dezelfde dag aanvangen en eindigen. Als laatste argument wordt de omschrijving van de afspraak gegeven. Kim zegt: afspraak vandaag 17:30 19:00 Bij Oma gaan eten FirgoTV zegt: Deze afspraak werd toegevoegd: vandaag van 17:30 tot 19:00. bij oma gaan eten Boodschappen Met behulp van het commando boodschappenlijst wordt er een overzicht van de huidige boodschappenlijst opgevraagd. Naast elk item dat zich op de boodschappenlijst bevindt, wordt eveneens aangegeven wie dat item op de boodschappenlijst geplaatst heeft. Mama zegt: Boodschappenlijst FrigoTV zegt: De huidige boodschappenlijst is: brood boter melk eieren Fanta Mama Mama Mama Mama Kim Nieuwe boodschappen op het lijstje toevoegen gebeurt met boodschap gevolgd door een of meerdere items. Deze items worden dan op de boodschappenlijst toegevoegd. De applicatie achterhaalt zelf wie de boodschappen op de lijst heeft toegevoegd. Mama zegt: Boodschap boter melk eieren FrigoTV zegt: Deze boodschappen werden toegevoegd: boter melk eieren Mama Mama Mama Notities Alle berichtjes die niet beginnen met één van de voorgaande commando s worden beschouwd als notities. Papa zegt: Ik kom vanavond een uurtje later thuis. FrigoTV zegt:

53 HOOFDSTUK 12. DE IM-INTERFACE 44 Deze notitie werd op je prikbord bevestigd: ik kom vanavond een uurtje later thuis.

54 Hoofdstuk 13 Het IM Interface pakket Hier wordt het pakket beschreven dat voor de werking van de IM Interface (Hoofdstuk 12) zorgt. De volledige naam van dit pakket is: be.devoegt.koen.im Interface. De javadocs die bij dit pakket horen evenals de volledige code programmacode kan op de CD-ROM in bijlage teruggevonden worden De Constants klasse Deze klasse wordt er enkel voor gebruikt om bepaalde constanten die veelvuldig in de applicatie gebruikt worden te groeperen. De configuratie van de IM Interface kan gebeuren door enkel de, in deze klasse gedefinieerde constanten, te wijzigen. Deze klasse bevat geen constructoren of methodes. Deze contanten zijn opgesomd in tabel Naam constante ICALSERVER ICALUSERNAME ICALPASSWORD JABBERSERVER JABBERUSERNAME JABBERPASSWORD Functie De volledige URL van het ical bestand. De gebruikers naam op de ical server. Het wachtwoord op de ical server. De naam van de Jabber server. De gebruikers naam op de Jabber server. Het wachtwoord op de Jabber server. Tabel 13.1: De constanten 13.2 De Grocery klasse Deze klasse is een zeer elementaire basisklasse die de nickname van de gebruiker die deze boodschap toevoegde en de naam van de boodschap groepeert De GroceryList klasse In deze klasse wordt de verzameling van alle boodschappen bijgehouden. Door de methode addgrocerie worden boodschappen toegevoegd. Deze methode geeft de String terug die naar 45

55 HOOFDSTUK 13. HET IM INTERFACE PAKKET 46 de gebruiker wordt teruggezonden. De methode tostring geeft eveneens een String terug. Deze String bevat alle boodschappen die zich op de boodschappenlijst bevinden. Hij wordt gebruikt wanneer de gebruiker de opdracht Boodschappenlijst doorstuurd. Deze klasse wordt aangeroepen vanuit de MessageParser klasse De Note klasse Deze klasse is zeer vergelijkbaar met Grocery. Het is eveneens een elementaire basisklasse die de gebruikersnaam van de zender van de boodschap, alsook de boodschap zelf groepeert De NoteList klasse NoteList is een klasse die sterke verwantschap kent met GroceryList. Deze klasse staat namelijk in voor het opslaan van notities. Laat het toe één of meerdere Note s tegelijk toe te voegen aan de NoteList. Geeft een de Note met gespecificeerde index in de lijst, of een lijst van alle Note s terug De InitData klasse Dit is een klasse die enkel gebruikt wordt om de NoteList en GroceryList te vullen met test waarden. Deze klasse heeft geen enkel nut in een afgewerkte applicatie. Deze klasse wordt ook gebruikt door de TV-GUI De AppointmentList klasse In deze klasse bevinden zich maar twee methoden. Dit zijn met name addappointment en getappointment. Zoals de naam doet vermoeden wordt addapointment gebruikt om afspraken toe te voegen aan de AppointmentList. Er moeten vier argumenten meegegeven worden. Als eerste een string die de volledige body van het ontvangen bericht bevat. Dit bevat dus ook de identificatie Afspraak die aan de MessageParser reeds duidelijk maakt dat deze methode gebruikt moet worden. Het tweede argument is een int die aanduid om welke dag het gaat. Deze wordt best meegegeven door middel van de constanten TODAY en TOMORROW. Het derde en vierde argument zijn een String die een aanvangs- en eindtijd bevatten. In deze methode wordt eerst het kalenderbestand ingelezen. Vervolgens wordt gecontroleerd of er geen, één of twee tijden werden meegegeven. Vervolgens wordt er een nieuwe afspraak gecreëerd. Deze wordt vervolgens aan de reeds bestaande kalender toegevoegd. Waarna de kalender opnieuw wordt opgeslagen. Als laatste geeft deze klasse een String terug die het antwoord bevat dat gegeven wordt wanneer een afspraak werd toegevoegd. De methode getappointment wordt gebruikt om de afspraken van een bepaalde dag weer te geven. Deze methode heeft maar een argument nodig. Er wordt een int meegegeven die net zoals bij addappointment aanduidt om welke dag het gaat. In deze methode wordt eerst het kalenderbestand geopend. Dan wordt er doorheen dit ganse bestand geïtereerd. Om zo

56 HOOFDSTUK 13. HET IM INTERFACE PAKKET 47 alle afspraken op die gegeven dag plaatsvinden te verzamelen. Van al deze gegevens wordt dan een String samengesteld die door de methode wordt teruggegeven. Het ical bestand wordt in deze klasse geopend met behulp van de in Hoofdstuk 14 besproken klassen De FridgeTV klasse Dit de klasse die de main van de IM-Interface toepassing bevat. Hierin wordt de verbinding met de server opgezet. De SubscriptionMode wordt op SUBSCRIPTION MANUAL gezet. Dit zorgt ervoor dat niemand zich op de status van onze applicatie kan abonneren. Deze instelling gebeurt door met een gewone Jabber chat client in te loggen onder de gebruikersnaam van onze applicatie. Hierna wordt de status gezet. Dan wordt aan de connectie met behulp van de methode addpacketlistener een instantie van de FridgeTVPacketListener en de FridgeTVPacketListener klasse toegevoegd. Dit zorgt ervoor dat de invoer die via de connectie aangevoerd wordt en die door de filter toegelaten wordt kan verwerkt worden door de listener. Hierna wordt er in het programma gewacht tot het opdracht krijgt om te stoppen. Alle verdere verwerking gebeurt via de listener De FridgeTVPacketFilter klasse De binnenkomende berichten worden door deze klasse gefilterd. Deze klasse is een extensie van de klasse PacketTypeFilter. De constructor van deze onderliggende klasse wordt in deze klasse aangeroepen met als argument Message.class. Dit zorgt ervoor dat de bovenliggende filter (FridgeTVPacketFilter) enkel nog maar berichten te verwerken krijgt die van het type boodschap zijn. En dus niets dat te maken heeft met de werking van Jabber, zoals bijvoorbeeld status of keep alive berichten. In FridgeTVPacketFilter worden enkel gebruikers die tot de gebruikersgroep familie of vrienden behoren geaccepteerd. Het is duidelijk dat het niet wenselijk is dat iedereen op het publieke Jabber-netwerk toegang heeft tot onze gegevens De FridgeTVPacketListener klasse In deze klasse worden alle berichten, die door de FridgeTVPacketFilter (Sectie 13.9) worden doorgelaten, verwerkt. Aan de constructor van deze klasse wordt de connectie die in het hoofdprogramma (Sectie 13.8) wordt gemaakt doorgegeven. Dit is noodzakelijk omdat het deze klasse is die de antwoorden naar de gebruiker terugzendt. De inhoud van de antwoorden bekomt deze klasse door gebruik te maken van de MessageParser. (Sectie 13.12) De FridgeTVRosterListener klasse Wordt gebruikt om statusberichten ivm het roster te ontvangen en weer te geven. Deze klasse is enkel noodzakelijk tijdens de verdere ontwikkeling van de IM Interface. De applicatie zelf heeft in eerste instantie geen boodschap aan de status informatie van de gebruikers. Indien men de applicatie zou willen uitbreiden met een geautomatiseerd bericht, dat verstuurd wordt

57 HOOFDSTUK 13. HET IM INTERFACE PAKKET 48 telkens een herkende gebruiker online komt, dan moet deze klasse wel geïmplementeerd zijn en nog verder uitgebreid worden De MessageParser klasse De enige methode in deze klasse is getreply. Deze klasse maakt gebruik van de klassen GroceryList, NoteList en AppointmentList (Secties 13.3, 13.5 en 13.7). De methode getreply heeft als argumenten twee Strings. De eerste String bevat de volledige body van de boodschap. De tweede bevat de naam van de afzender. De klasse detecteert of de boodschap aanvangt met één van de vijf gekende commando s (boodschappenlijst, boodschap, vandaag, morgen, afspraak). Indien dit niet het geval is wordt er verondersteld dat men een notitie wil toevoegen. Indien men een afspraak wil toevoegen wordt er reeds in deze klasse nagegaan over welke dag het gaat en of dat er al dan niet aanvangs- en eindtijd meegegeven is. Deze klasse geeft een String terug die het antwoord op het verzonden bericht vormt De UserList klasse Deze klasse wordt door de klasse FridgeTVPacketFilter (Sectie 13.9) gebruikt om de leden van de familie en de vrienden op te slaan. Bij het aanmaken van deze lijsten wordt er via drie boolean s meegegeven of gebruikers die tot deze groep behoren toestemming hebben notities, boodschappen of afspraken toe te voegen. Van deze laatste functionaliteit wordt in de huidige versie echter nog geen gebruik gemaakt. Een gebruiker die zich op één van de twee lijsten bevindt heeft volledige toegang tot de applicatie.

58 Hoofdstuk 14 Gedeelde klassen De klassen die gebruikt worden om toegang te krijgen tot gegevens in het ical bestandsformaat worden zowel in de TV-GUI als in de IM-interface gebruikt. Daarom werden deze klassen in een apart pakket, namelijk be.devoegt.koen.ical RW, gestoken. Dit is een afkorting voor icalendar Read/Write. In alle codevoorbeelden in dit hoofdstuk wordt de afhandeling van de opgeworpen exceptions voor de duidelijkheid weg gelaten. Over het bestandstype kan er meer informatie teruggevonden worden in Bijlage 4. De javadocs van de door mij geschreven klassen evenals de volledige programmacode die bij dit pakket horen kunnen teruggevonden worden op de CD-ROM in bijlage ical Bestanden Lezen Om bestanden in te lezen werden er drie klassen voorzien, elk met een verschillend doel. De klassen OpenLocalFile wordt gebruikt om lokaal bewaarde bestanden te openen. Om onbeveiligde bestanden van op server in te lezen is er de klasse OpenRemoteFile. Bestanden op een beveiligde server kunnen geopend worden met de klasse OpenSecureRemoteFile De OpenLocalFile klasse De klasse OpenLocalFile krijgt bij het aanroepen als parameter de string file mee. Deze string bevat de bestandsnaam eventueel aangevuld met het pad. Het openen van een lokaal bestand wordt op de volgende manier verwezenlijkt: fin = new FileInputStream(file); icalendar = builder.build(fin); fin.close(); De OpenRemoteFile klasse Het openen van een bestand dat zich op een publiek toegankelijke webserver bevindt, vraagt iets meer stappen. Hieronder verduidelijken we dit met een code voorbeeld. Hierin is urlstring de volledige url met inbegrip van de protocol aanduiding ( en de bestandsnaam. Deze variabele wordt eveneens als parameter meegegeven. URL url = new URL(urlString); URLConnection conn = url.openconnection(); 49

59 HOOFDSTUK 14. GEDEELDE KLASSEN 50 conn.setdoinput(true); conn.setusecaches(false); fin = conn.getinputstream(); icalendar = builder.build(fin); fin.close(); De OpenSecureRemoteFile klasse Een bestand dat op een beveiligde webserver opgeslagen is, gebeurt met de klasse OpenSecureRemoteFile. Aan deze klasse moet niet enkel de variabele urlstring meegegeven worden, maar eveneens de variabelen username en password. InputStream fin; CalendarBuilder builder = new CalendarBuilder(); Authenticator.setDefault(this); URL urlstring = new URL(urlString); fin = urlstring.openstream(); icalendar = builder.build(fin); fin.close(); De klasse OpenSecureRemoteFile is een extensie van de klasse Authenticator. Via de methode PasswordAuthentication worden wachtwoord en gebruikersnaam verschaft ical Bestanden Schrijven De SaveLocalFile klasse Om bestanden weg te schrijven naar een lokaal bestandssysteem beschikt dit pakket over de klasse SaveLocalFile. Hier wordt net zoals bij OpenLocalFile met de string file gewerkt. FileOutputStream fout = new FileOutputStream(file); CalendarOutputter outputter = new CalendarOutputter(); outputter.output(icalendar, fout); fout.close(); De SaveSecureRemoteFile klasse Deze klasse wordt aangeroepen met als variabelen de Strings urlstring, username en password en het icalendar object. Voor het opslaan van gegevens op een WebDAV server wordt de Jakarta Slide programma bibliotheek gebruikt. FileOutputStream fout = new FileOutputStream(file); CalendarOutputter outputter = new CalendarOutputter(); outputter.output(icalendar, fout); fout.close(); HttpURL hurl = new HttpURL(server);

60 HOOFDSTUK 14. GEDEELDE KLASSEN 51 hurl.setuserinfo(username, password); WebdavResource wdr = new WebdavResource(hurl); File outfile = new File(file); wdr.putmethod(path, outfile); wdr.close(); De variabele urlstring wordt in de eerste stap opgesplitst in drie anders Strings, namelijk server, path en file. De variabele server bevat de naam van de server en de protocol aanduiding. De variabelen path en file bevatten respectievelijk het absolute pad op de server (met inbegrip van de bestandsnaam) en de bestandsnaam afzonderlijk. In de eerste fase wordt er een tijdelijk bestand opgeslagen met dezelfde naam, dat bestand wordt in het tweede deel van de routine met behulp van putmethod verzonden naar de server. Deze manier van werken is duidelijk geen ideale oplossing De TestMain klasse Verder bevat dit pakket nog een testklasse. Deze klasse TestMain is een uitvoerbare klasse die gebruik maakt van de bovenstaande klassen. Ze kan bestanden inlezen van een lokaal bestandssyteem, een publieke en een privé server. Ze voegt hierna een test afspraak toe. Deze afspraak heeft als omschrijving Test Appointment!!!. Ze vangt steeds op het huidige tijdstip aan en duurt één uur. Hierna slaat de klasse de kalender opnieuw op. Met behulp van constanten die in deze klasse gedefinieerd worden kunnen de gebruikte bestanden ingesteld worden.

61 Hoofdstuk 15 SMS Om het mobiele aspect aan de applicatie toe te voegen werden er verschillende mogelijke werkwijzen onderzocht. De eerste methode onderzocht de bestaande SMS gateways voor jabber. De tweede methode bekeek een eventuele werking via een ander IM protocol SMS gateway Er zijn verschillende SMS-gateways voor Jabber beschikbaar. De meeste transports laten echter enkel éénrichtingsverkeer, van internet naar GSM, toe. Een voorbeelden hiervan is In tegenstelling tot wat de naam doet vermoeden bevindt deze server zich in Duitsland. Deze diensten zijn echter niet bruikbaar omdat onze applicatie niet elk SMS berichten moet kunnen versturen. Figuur 15.1: Netwerk infrasructuur voor verzenden SMS. Een server die wel tweerichtingsverkeer toelaat is De registratie, van een virtueel telefoonnummer om SMS te ontvangen, op deze dienst is niet kosteloos (120 euro per jaar). Deze prijs werd te hoog geacht voor gebruik in een demo-opstelling. Een schema van de werking wordt gegeven in figuur Facturatie gebeurt via een kredietkaart. Meer informatie kan gevonden worden op en Andere gateways In deze sectie wordt er alleen dieper ingegaan op de diensten van MSN Mobile. Geen van de andere IM netwerken werken samen met één van de Belgische GSM-operatoren. Dit heeft tot 52

62 HOOFDSTUK 15. SMS 53 gevolg dat via deze diensten werken steeds een meer kost met zich meebrengt, en vaak zelfs onmogelijk is zonder een GSM abonnement in één van de landen waarin de dienst actief is MSN Mobile De diensten van MSN Mobile bieden tweerichtingsverkeer tussen MSN-messenger en een GSM aan. Via deze dienst is het mogelijk locale GSM-operatoren te gebruiken. In België zijn dit Mobistar en Proximus. Hierbij wordt er een bestaand GSM-nummer gekoppeld aan een bestaande MSN-account. De facturatie gebeurt via de GSM-operatoren. Zowel een SMS verzonden naar een MSN-account als een IM-bericht ontvangen op een GSM wordt gefactureerd aan de eigenaar van de betrokken GSM. Er kan eveneens een opgevraagd worden welke leden van de contactlijst er op dit moment online zijn. Dit gebeurt door het verzenden van een SMS met als enige tekst LS naar een nummer dat bij de registratie van een MSN mobile account wordt meegedeeld. Hierop wordt dan onmiddellijk geantwoord met een SMS die een overzicht van de online contactpersonen bevat. Figuur 15.2: Netwerk infrasructuur voor verzenden SMS via MSN. Deze opstelling blijkt in de praktijk echter niet te werken. Als er een Jabber account online is, kan men met behulp van MSN Mobile de status opvragen. Deze wordt dan correct weergegeven. Het verzenden van een SMS naar deze contactpersoon lukt echter niet. De boodschap gaat zonder foutmelding verloren. Ze wordt ook niet verstuurd naar het adres van de ontvanger. Dit is wat er anders gebeurt met een bericht dat naar een offline contact wordt verstuurd, die zijn GSM nummer niet bij MSN mobile geregistreerd heeft. Het versturen van een bericht met behulp van een Jabber client naar een MSN-account waaraan via MSN Mobile een GSM nummer verbonden is, geeft een foutmelding. Deze fouten zijn waarschijnlijk te wijten aan het feit dat de MSN transport die op de Jabber server gebruikt wordt geen ondersteuning biedt voor het zenden en ontvangen van berichten van of naar offline contactpersonen.

63 Deel III Opzetten demo-opstelling 54

64 Hoofdstuk 16 Demo opstelling In dit hoofdstuk worden de technische aspecten van de demo opstelling besproken Opzet Om onze werking van onze applicatie te tonen gebruiken wij een fictieve familie. Deze bestaat uit een vader David, moeder Vickey en een dochter Kim. David gaat nog regelmatig een pint drinken met zijn oude schoolkameraad Tim. Dochter Kim is goed bevriend met de dochter van Tim, Daisy. Dit wordt in Figuur 16.1 schematisch weergegeven. Voor elk van deze fictieve Figuur 16.1: De test families personages werd een gebruikersnaam gecreëerd Jabber server Jammerlijk genoeg laten de meeste firewalls het niet toe om een publieke Jabber server te gebruiken. We zijn dus genoodzaakt er één lokaal uit te voeren. We gebruiken hiervoor Jive Messenger. Deze applicatie en meer informatie hierover kan gevonden worden op http: // Deze Jabber server is van dezelfde makers als de Smack programmabibliotheken. Het feit dat we enkel van een lokale server kunnen gebruik maken heeft één nadeel. Hierdoor kan het gebruik van andere IM-protocollen niet getoond worden. 55

65 HOOFDSTUK 16. DEMO OPSTELLING icalendar Server We hebben voor de demonstratie gekozen om gebruik te maken van een gratis account op de publieke server: We creëren een account met de volgende gegevens: gebruikersnaam: wachtwoord: FrigoTV iamcool Deze account staat het ons toe om gegevens op te staan in twee folders op de server. Een publieke folder en een privé folder. De test opstelling maakt gebruik van de privé folder, namelijk Zowel in de Constants klasse van de TV-GUI als van de IM-interface worden deze gegevens toegevoegd. Zodat beide applicaties van hetzelfde bestand gebruik maken TV-GUI Om de situatie waarin de TV-GUI gebruikt zal worden zo realistisch mogelijk weer te geven zijn er enkele stappen noodzakelijk. Aangezien het voor de demonstratie niet mogelijk was om over een geschikte STB te beschikken, wordt de applicatie op een laptop uitgevoerd. De verschillende stappen die we ondernamen om met deze middelen het gebruikersgevoel te creëren dat het gebruik van de applicatie moet oproepen, worden hieronder beschreven Uitvoer op een TV scherm Een moderne laptop beschikt meestal over een composiet video of een S-video uitgang zodat de computerbeelden met behulp van de juiste kabels zeer eenvoudig op een TV scherm kunnen weergegeven worden De afstandsbediening Aangezien het een hele opgave was om een interface te bedenken die op een logische en efficiënte manier van het beperkte aantal toetsen op een afstandsbediening gebruik maakt, zou het ontzettend jammer zijn om de applicatie te demonstreren met behulp van een volledig PC toetsenbord. Een PC bedienen via een afstandsbediening is echter niet zo moeilijk te verwezenlijken. Er moet enkel de benodigde hardware en software geïnstalleerd worden. Hardware Als afstandsbediening wordt de Thomson universal remote controle gebruikt. De keuze van afstandsbediening is echter volledig vrij omdat de ontvanger van de IR 1 signalen volledig programmeerbaar is. Natuurlijk moet deze afstandsbediening wel over de juiste toetsen beschikken. Dit is bij een recente versie echter bijna altijd het geval. Als hardware om de IR signalen op te vangen wordt er gebruik gemaakt van de Tira IR: Infra Rood 2 Tira: Transmitting InfraRed Adapter

66 HOOFDSTUK 16. DEMO OPSTELLING 57 (a) (b) Figuur 16.2: (a) De Thomson afstandsbediening (b) De Tira infrarood ontvanger. van home-electro. De Tira-2 kan eenvoudig op de USB-poort van de computer aangesloten worden. Verder moeten er dan enkel nog de vereiste drivers geïnstalleerd worden. Deze kunnen gedownload worden van support.php. Als eerste wordt de driver van Tira zelf geïnstalleerd gevolgd via een virtuele seriële poort. Het is via deze poort dat de communicatie met de hardware zal verlopen. Software De IR signalen worden op de computer door het programma Girder 3.3 verwerkt. Dit programma moet op de manier die op een Windows computer gebruikelijk is, geïnstalleerd worden. Hierna moet de plugin van Tira (tira.dll) naar de plugins subdirectory van de Girder directory gekopieerd worden. Meer informatie over Girder evenals de benodigde plugins kunnen gevonden worden op Met behulp van Girder moet er een Figuur 16.3: Girder bestand aangemaakt worden waarin er voor elk van de gebruikte toetsen een bijhorend commando gedefinieerd wordt. De door de afstandsbediening uitgezonden signalen moeten in dit bestand verbonden worden met de door de TV-GUI gebruikte keyboard toetsen. Elke toets op de afstandsbediening heeft twee staten. Afhankelijk van deze staat wordt er een verschillend signaal uitgezonden. Aangezien de applicatie geen gebruik maakt van deze staten wordt

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

HTML. Media. Hans Roeyen V 3.0

HTML. Media. Hans Roeyen V 3.0 Media Hans Roeyen V 3.0 12 maart 2015 Inhoud 1. (Multi)Media op websites... 3 2. Flash en Websites... 4 3. Video op je website... 4 3.1. YouTube insluiten op de pagina... 4 3.2. Video zonder YouTube...

Nadere informatie

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Deze vakinhoudelijke uitwerking is ontwikkeld door het Redactieteam van de Schooleamenbank vmbo voor dit

Nadere informatie

Looproute Microsoft OneNote 2010 versie 1.0. Looproute Microsoft OneNote 2010. Inleiding

Looproute Microsoft OneNote 2010 versie 1.0. Looproute Microsoft OneNote 2010. Inleiding 1 Looproute Microsoft OneNote 2010 Inleiding Dit document beschrijft de werking van het computerprogramma Microsoft OneNote (versie 2010) en is bedoeld voor docenten en leerlingen van het basis- en voortgezet

Nadere informatie

Grafisch ontwerp. Referenties. https://developers.google.com/webmasters/mobile-sites/ http://www.bluetrainmobile.com/mobile-showcase

Grafisch ontwerp. Referenties. https://developers.google.com/webmasters/mobile-sites/ http://www.bluetrainmobile.com/mobile-showcase Mobiel Datanose Op dit moment is mobiel datanose niet goed gedaan; je krijgt gewoon de site te zien zoals je het te zien krijgt op pc's of laptops. Maar vaak heb je het probleem dat je op je mobiel moet

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

The OSI Reference Model

The OSI Reference Model Telematica Applicatielaag Hoofdstuk 16, 17 Applicatielaag 4Bevat alle toepassingen die van het netwerk gebruik maken n E-mail n Elektronisch nieuws n WWW n EDI (Electronic Data Interchange) n Napster,

Nadere informatie

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014 HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014 Inhoudsopgave 1. Inleiding... 3 2. Systeemvereisten... 3 3. Installeren van de software... 4 4. Programma instellingen... 5 5. Importeren van een

Nadere informatie

Handleiding voor Zotero versie 2.0

Handleiding voor Zotero versie 2.0 Handleiding voor Zotero versie 2.0 Michiel Wolda De handleiding voor Zetero is geschreven voor de lezers van het boek Deskresearch: Informatie selecteren, beoordelen en verwerken: tweede editie (Van Veen

Nadere informatie

Zelftest Java concepten

Zelftest Java concepten Zelftest Java concepten Document: n0838test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA CONCEPTEN Om de voorkennis nodig

Nadere informatie

Inleiding. Wil je hier meer over weten klik dan op de onderstaande link voor het introductie filmpje. http://www.youtube.com/watch?

Inleiding. Wil je hier meer over weten klik dan op de onderstaande link voor het introductie filmpje. http://www.youtube.com/watch? Inhoud Inleiding... 1 Aanmelden bij Office 365... 2 Werken met Office 365 Outlook... 2 Agenda delen... 2 Gedeelde agenda inzien... 2 Gedeelde postbus inzien... 2 Een handtekening instellen... 3 Conversatieweergave

Nadere informatie

Selenium IDE Webdriver. Introductie

Selenium IDE Webdriver. Introductie Selenium IDE Webdriver Het Wielsem 10, 5231 BW s- Hertogenbosch, telefoon 073-6409311 e- mail info@testwork.nl internet http://www.testwork.nl 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Selenium IDE... 3 3

Nadere informatie

Gebruikershandleiding VU Webmail (Outlook Web App) januari 10

Gebruikershandleiding VU Webmail (Outlook Web App) januari 10 Vrije Universiteit Amsterdam Universitair Centrum IT Gebruikershandleiding VU Webmail (Outlook Web App) januari 10 Dit document beschrijft de toegang tot en de configuratie van VU Webmail (Outlook Web

Nadere informatie

Gebruikershandleiding

Gebruikershandleiding . Gebruikershandleiding Inhoudsopgave 1 Inleiding... 3 1.1 Wat is Citrix?... 3 1.2 Voordelen van Citrix... 3 1.3 Wat heeft u nodig om toegang te krijgen... 3 2 Systeemeisen... 4 2.1 Ondersteunde Web browsers...

Nadere informatie

Cisco Cloud. Collaboration. Ronald Zondervan David Betlem September, 2011. Presentation_ID 2010 Cisco Systems, Inc. All rights reserved.

Cisco Cloud. Collaboration. Ronald Zondervan David Betlem September, 2011. Presentation_ID 2010 Cisco Systems, Inc. All rights reserved. Cisco Cloud Collaboration Ronald Zondervan David Betlem September, 2011 1 E Open architectuur Uitgangspunten Gebaseerd op Open Standaarden telefonie, video, desktop integratie, beschikbaarheidsstatus (presence)

Nadere informatie

BSCW-WebDAV Handleiding

BSCW-WebDAV Handleiding BSCW-WebDAV Handleiding Strategische informatievoorziening Februari 2005 versie 2 Gebruik van deze handleiding Deze handleiding is bedoeld om medewerkers en studenten te ondersteunen bij het gebruik van

Nadere informatie

Ga naar http://www.domeinnaam.nl/wp-admin en log in met de gebruikersnaam en wachtwoord verkregen via mail.

Ga naar http://www.domeinnaam.nl/wp-admin en log in met de gebruikersnaam en wachtwoord verkregen via mail. INLOGGEN Ga naar http://www.domeinnaam.nl/wp-admin en log in met de gebruikersnaam en wachtwoord verkregen via mail. Vul hier je gebruikersnaam en wachtwoord in en klik op Inloggen. Bij succesvolle login

Nadere informatie

Inventus Software. Antum Secured Mail / Message System. Gebruikershandleiding

Inventus Software. Antum Secured Mail / Message System. Gebruikershandleiding Inventus Software Antum Secured Mail / Message System Gebruikershandleiding 1 Hoe begin ik? 3 2 Wat is er zoal aanwezig in het hoofdprogramma? 3 3 Hoe decoder ik e-mails of tekstberichten? 4 3.1 Decoderen

Nadere informatie

Handleiding website. Inloggen Start uw internet browser en ga naar http://www.rbaoreven.nl/.

Handleiding website. Inloggen Start uw internet browser en ga naar http://www.rbaoreven.nl/. Handleiding website In deze handleiding staat alles wat u nodig heeft om een bericht op de website van de Reddingsbrigade Aoreven Heythuysen te plaatsen. Alles wordt in woord en beeld uitgelegd. Inloggen

Nadere informatie

KDE afstandsbediening-instellingen. Michael Zanetti Vertaler/Nalezer: Tom Albers

KDE afstandsbediening-instellingen. Michael Zanetti Vertaler/Nalezer: Tom Albers Michael Zanetti Vertaler/Nalezer: Tom Albers 2 Inhoudsopgave 1 Inleiding 5 1.1 Benodigdheden....................................... 5 2 Gebruik 6 2.1 Afstandsbedieningen en modi...............................

Nadere informatie

DrICTVoip.dll v 2.1 Informatie en handleiding

DrICTVoip.dll v 2.1 Informatie en handleiding DrICTVoip.dll v 2.1 Informatie en handleiding Nieuw in deze versie : Koppeling voor web gebaseerde toepassingen (DrICTVoIPwebClient.exe) (zie hoofdstuk 8) 1. Inleiding Met de DrICTVoIP.DLL maakt u uw software

Nadere informatie

1 van 8 22-2-2012 20:43

1 van 8 22-2-2012 20:43 1 van 8 22-2-2012 20:43 Garmin Basecamp is een gratis software programma van Garmin. Het vergelijkbaar met mapsource, echter met de nieuwe toestellen (oregon, dakota en gpsmap 62) heeft het een aantal

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

Handleiding Document Management Systeem (DMS)

Handleiding Document Management Systeem (DMS) Handleiding Document Management Systeem (DMS) 1/16 INDEX: 1.Wat?... 3 2.URL + aanmelding... 3 3.Opladen van documenten*... 7 4.Link voor externen:... 9 Download url:... 12 Inleiding:... 12 Instellingen...

Nadere informatie

Globale kennismaking

Globale kennismaking Globale kennismaking Kennismaking Tesla CMS 1. Dashboard 2. pagina beheer - pagina aanmaken - pagina aanpassen - pagina verwijderen - pagina seo opties - zichtbaarheid pagina 3. subpagina beheer - subpagina

Nadere informatie

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt. Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl info@darwin-it.nl KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren

Nadere informatie

Calligra. Algemene inleiding. Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning

Calligra. Algemene inleiding. Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning Algemene inleiding Raphael Langerhorst Jost Schenck Vertaler/Nalezer: Natalie Koning 2 Inhoudsopgave 1 Inleiding 5 1.1 Calligra-componenten................................... 5 1.2 Overzicht van de eigenschappen

Nadere informatie

Handleiding Office 365 IN EEN NOTENDOP ALLES OVER OFFICE 365 CARLO KONIJN CHI COMPUTERS HEERHUGOWAARD

Handleiding Office 365 IN EEN NOTENDOP ALLES OVER OFFICE 365 CARLO KONIJN CHI COMPUTERS HEERHUGOWAARD 2014 Handleiding Office 365 IN EEN NOTENDOP ALLES OVER OFFICE 365 CARLO KONIJN CHI COMPUTERS HEERHUGOWAARD Inhoud Inleiding... 2 Aanmelden bij office 365 via het portaal.... 2 Het portaal en gebruikers:...

Nadere informatie

Beschrijvings SW gebruikers handleiding (V1.1) Voor Apple Macintosh computers Voor Macintosh Computer

Beschrijvings SW gebruikers handleiding (V1.1) Voor Apple Macintosh computers Voor Macintosh Computer Annotation SW User s Guide Beschrijvings SW gebruikers handleiding (V1.1) Voor Apple Macintosh computers Voor Macintosh Computer 2011. 5 PenAndFree Co.,Ltd 0 Deze handleiding beschrijft alle functies die

Nadere informatie

OFFICE 365. Start Handleiding Medewerkers

OFFICE 365. Start Handleiding Medewerkers OFFICE 365 Start Handleiding Medewerkers Meer info: Naast deze handleiding is er zeer veel informatie reeds voorhanden op het internet of door op het vraagteken te klikken in de Office 365 omgeving. Ook

Nadere informatie

Webonderdelen (Web Parts)

Webonderdelen (Web Parts) Webonderdelen (Web Parts) Een SharePoint pagina is opgedeeld in een aantal zones op het scherm. In elke zone kunnen Webonderdelen, veelal Web Parts genoemd, geplaatst worden. Deze Web Parts zijn kleine

Nadere informatie

De ontwikkelaar heeft het recht om af te zien van verdere ontwikkeling en/of ondersteuning van dit pakket.

De ontwikkelaar heeft het recht om af te zien van verdere ontwikkeling en/of ondersteuning van dit pakket. 1. Licentieovereenkomst BELANGRIJK! LEES DEZE OVEREENKOMST ALVORENS DE SOFTWARE TE INSTALLEREN! Het aanvaarden van deze overeenkomst geeft u het recht tot gebruik van deze software, de software blijft

Nadere informatie

Handleiding Wordpress

Handleiding Wordpress Handleiding Wordpress Inhoudsopgave 1. Inloggen 2. Berichten en Pagina s 3. Afbeeldingen en video s 4. Weblinks 1. Inloggen 1.1 Inloggen bij Wordpress We starten met het inloggen op je WordPress gebaseerde

Nadere informatie

Gebruikersvriendelijke beheer van bestanden in SharePoint

Gebruikersvriendelijke beheer van bestanden in SharePoint #1 Oplossing wereldwijd. Bewezen in omgvangrijke omgevingen 100+ en 10.000+ gebruikers. GeONE is uw partner voor SharePoint Informatie Management. GeONE levert het volledige pakket aan SharePoint toepassingen

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

Functionele beschrijving: Scannen naar AFAS Profit. Functionele beschrijving: Scannen naar AFAS Profit. Algemeen Met de Kyocera Scannen naar AFAS Profit beschikt u over een efficiënte oplossing om uw documenten te scannen naar AFAS Profit. Met deze oplossing

Nadere informatie

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Om eens wat ervaring op te doen met de Windows Azure Marketplace heb ik een publieke en gratis databron gekozen

Nadere informatie

Gebruikersvriendelijke beheer van bestanden in SharePoint

Gebruikersvriendelijke beheer van bestanden in SharePoint #1 Oplossing wereldwijd. Bewezen in omgvangrijke omgevingen 100+ en 10.000+ gebruikers. GeONE is uw partner voor SharePoint Informatie Management. GeONE levert het volledige pakket aan SharePoint toepassingen

Nadere informatie

Mitel User Group. Mitel-licentiestructuur. Jan Jansen. Account Director april 2015

Mitel User Group. Mitel-licentiestructuur. Jan Jansen. Account Director april 2015 Mitel User Group Mitel-licentiestructuur Jan Jansen Account Director april 2015 De concrete vraag Kan iemand van Mitel de licentiestructuur uitleggen? 2 Agenda Waarom licenties Basis Mitel-licentiestructuur

Nadere informatie

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT

Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Slimmer samenwerken met SharePoint Workflows voor SharePoint met forms en data K2 VOOR SHAREPOINT Workflows, forms, reports en data WAAROM KIEZEN VOOR K2? Of u nu workflows moet maken voor items in SharePoint

Nadere informatie

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3. Versie 1.0 05.03.2015 02 1. Over LEVIY Wat doet LEVIY? 08 5. Openen van de activiteit Hoe wordt de activiteit geopend? 2. Algemene definities Behandelen van terugkerende definities. 09 6. Inloggen op het

Nadere informatie

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database Datum: 25-09-2007 Auteur: ing. E.L. Floothuis Versie: 0.1 Status: Concept Kopersteden 22-4 Postbus 157 7500 AD Enschede Tel: 053 48

Nadere informatie

Snel op weg met webworxx e-mail

Snel op weg met webworxx e-mail pagina 1 van 23 Snel op weg met webworxx e-mail U heeft kleur bekend en gekozen voor webworxx e-mail. Met deze handleiding helpen wij u graag snel op weg bij het instellen van uw e-mailaccount. Firefox

Nadere informatie

ActiveBuilder Handleiding

ActiveBuilder Handleiding ActiveBuilder Handleiding Auteur: TalkActive I/S Datum: Juli 2004 Versie: R. 1.01 Taal: Nederlands Copyright 2004 - Talk Active alle rechten voorbehouden. Inhoud: 1. INTRODUCTIE...2 2. SNEL STARTEN...3

Nadere informatie

DE ELEKTRONISCHE IDENTITEITSKAART (EID)

DE ELEKTRONISCHE IDENTITEITSKAART (EID) DE ELEKTRONISCHE IDENTITEITSKAART (EID) MS OFFICE 2007 (WINDOWS - WORD EN EXCEL) VERSIE 1.1.1 NL Disclaimer Fedict is niet verantwoordelijk voor om het even welke schade die een derde zou ondervinden ingevolge

Nadere informatie

HANDLEIDING DMS Plugin Installatie, configuratie & werking

HANDLEIDING DMS Plugin Installatie, configuratie & werking HANDLEIDING DMS Plugin Installatie, configuratie & werking Dit document is de handleiding voor de installatie, configuratie en werking van de DMS Plugin. Versie 1-12/09/2005 Inhoudstafel 1 Installatie...

Nadere informatie

Werken op afstand via internet

Werken op afstand via internet HOOFDSTUK 12 Werken op afstand via internet In dit hoofdstuk wordt uitgelegd wat er nodig is om op afstand met de ROS artikel database te kunnen werken. Alle benodigde programma s kunnen worden gedownload

Nadere informatie

Het Wepsysteem. Het Wepsysteem wordt op maat gebouwd, gekoppeld aan de gewenste functionaliteiten en lay-out van de site. Versie september 2010

Het Wepsysteem. Het Wepsysteem wordt op maat gebouwd, gekoppeld aan de gewenste functionaliteiten en lay-out van de site. Versie september 2010 Het Wepsysteem Het Wepsysteem is een content management systeem, een systeem om zonder veel kennis van html of andere internettalen een website te onderhouden en uit te breiden. Met het Content Management

Nadere informatie

Verkleinen- en uploaden van beelden

Verkleinen- en uploaden van beelden Verkleinen- en uploaden van beelden Deze handleiding is opgebouwd rond eenvoudig te gebruiken programma s die verkrijgbaar zijn in het Nederlands en te installeren zijn onder Windows XP, Vista en Windows

Nadere informatie

MSN Messenger als marketing instrument

MSN Messenger als marketing instrument MSN Messenger als marketing instrument In dit artikel wil ik u meenemen over de mogelijkheden die instant messaging (met name msn messenger) u bieden voor het bereiken van uw doelgroep of het creëren van

Nadere informatie

Een eerste applicatie

Een eerste applicatie Een eerste applicatie 2.1 Inleiding Programmeren in Visual Basic.NET doe je niet alleen door regels met code te schrijven. Je begint met het ontwerpen van een venster in de design mode met allerlei controls,

Nadere informatie

Shakespeak. Een praktische handleiding voor docenten

Shakespeak. Een praktische handleiding voor docenten Shakespeak Een praktische handleiding voor docenten 1 Inhoudsopgave I. Wat is Shakespeak?... 3 II. Shakespeak gebruiksklaar maken... 4 III. Vragen toevoegen... 5 IV. Instellingen en lay out aanpassen...

Nadere informatie

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten.

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten. Versie 1.0 23.03.2015 02 1. Over LEVIY Wat doet LEVIY? 08 5. Documenten Wat kan ik met Documenten? 2. Algemene definities Behandelen van terugkerende definities. 09 5.1 Documenten terugvinden Uitleg over

Nadere informatie

Software Design Document

Software Design Document Software Design Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

Handleiding Shakespeak

Handleiding Shakespeak Handleiding Shakespeak 1. Inhoudsopgave 2. Shakespeak bij Hogeschool VHL... 2 3. Shakespeak gebruiksklaar maken... 3 a. Uw account... 3 b. De plugin... 3 4. Vragen toevoegen... 4 5. Instellingen en lay-out

Nadere informatie

Aanmelden Na installatie wordt de service automatisch gestart en kunt u meteen aanmelden van op afstand:

Aanmelden Na installatie wordt de service automatisch gestart en kunt u meteen aanmelden van op afstand: Remote administratie Als administrator hebt u verschillende mogelijkheden om een Linux systeem van op afstand te beheren. Populaire toepassingen zijn bijvoorbeeld Webmin en VNC. Het gebruik van deze twee

Nadere informatie

Elbo Technology BV Versie 1.1 Juni 2012. Gebruikershandleiding PassanSoft

Elbo Technology BV Versie 1.1 Juni 2012. Gebruikershandleiding PassanSoft Versie 1.1 Juni 2012 Gebruikershandleiding PassanSoft Versie 1.1 Juni 2012 2 Inhoud: Opstart scherm PassanSoft... 1 Het hoofdmenu van PassanSoft wordt geopend... 4 Verklaring extra knoppen weergegeven

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

Nadere informatie

De Outlook en SharePoint integratie

De Outlook en SharePoint integratie Direct vanuit Outlook e-mailberichten en/of bijlagen opslaan in SharePoint ( drag and drop ). GeONE is uw partner voor SharePoint Informatie Management. Alle document management functionaliteiten beschikbaar

Nadere informatie

Introductie Werken met Office 365

Introductie Werken met Office 365 Introductie Werken met Office 365 Een introductie voor gebruikers Inhoud Inleiding... 4 Aanmelden bij Office 365... 4 Werken met Office 365 Outlook... 5 Werken met Outlook 2007/2010... 5 Werken met de

Nadere informatie

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op 1 Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP.... 8 Joomla installeren op XAMPP... 15 Handige links... 16 2 Disclaimer Bij de samenstelling

Nadere informatie

IMPACTS SITES BEZOOM V2.1 GEBRUIKSAANWIJZING

IMPACTS SITES BEZOOM V2.1 GEBRUIKSAANWIJZING INHOUD I. LOGIN IMPACTS SITES BEZOOM V2.1 GEBRUIKSAANWIJZING II. BEHEER UW WEBSITE 1. ONDERWERP A. Informatie B. Contactpersoon C. Links D. Footer E. Favicon 2. CMS A. Toevoegen (een pagina) B. SEO 3.

Nadere informatie

Versturen van email vanuit een Delphi VCL toepassing

Versturen van email vanuit een Delphi VCL toepassing Versturen van email vanuit een Delphi VCL toepassing Voor Delphi bestaan uiteraard verschillende libraries om emails te versturen, maar in dit voorbeeld wordt een C# Dotnet library gebruikt en aangesproken

Nadere informatie

Korte uitleg gebruik Jira als bevindingregistratie systeem

Korte uitleg gebruik Jira als bevindingregistratie systeem MEMO Korte uitleg gebruik Jira als bevindingregistratie systeem Aan : Jira gebruikers Datum : 26 juli 2010 Van : Sogeti Jira beheer Versie : 1.1 INLEIDING Deze verkorte uitleg van het gebruik van Jira

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Acco: Files exchange documentatie 10 januari 2011

Acco: Files exchange documentatie 10 januari 2011 Acco: Files exchange documentatie 10 januari 2011 Door Philippe Dellaert Acco: Files exchange documentatie - 1/9 1. Inleiding ACCO maakt gebruik van een online systeem om documenten uit te wisselen tussen

Nadere informatie

Uitgebreid voorstel Masterproef Informatica

Uitgebreid voorstel Masterproef Informatica HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Optimalisatie & ontwikkeling van een gegevenstransfertool voor Business Intelligence-gebruikers Datum : 01/11/2012 Naam student

Nadere informatie

Philips E-motion. Protoyping/Interactieontwerp. Kwartaal 1 jaar 3. Inhoud Onderzoek Schetsen Mockups Wireframes Flowcharts

Philips E-motion. Protoyping/Interactieontwerp. Kwartaal 1 jaar 3. Inhoud Onderzoek Schetsen Mockups Wireframes Flowcharts Protoyping/Interactieontwerp Philips E-motion Kwartaal 1 jaar 3 Inhoud Onderzoek Schetsen Mockups Wireframes Flowcharts Maarten de Splenter COHORT0506 000119739 Onderzoek Bij het ontwikkelen van de E-motion

Nadere informatie

Toelichting op enkele knoppen: (als u de muis bij een knop houdt, verschijnt een tekst met een korte aanwijzing (tooltip) bij deze knop).

Toelichting op enkele knoppen: (als u de muis bij een knop houdt, verschijnt een tekst met een korte aanwijzing (tooltip) bij deze knop). FAQ Leerlingdossier & handelingsplannen Welke mogelijkheden biedt de online tekstverwerker in ESIS? De online tekstverwerker beschikt over veel mogelijkheden voor het bewerken van tekst. U vindt de online

Nadere informatie

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

Nadere informatie

Web Handleiding. semper vigilant Fall 2014 LOCALBOX 1.1.3

Web Handleiding. semper vigilant Fall 2014 LOCALBOX 1.1.3 Web Handleiding semper vigilant Fall 2014 Functionaliteiten web-based 2 Inloggen 2 Home 3 Uploaden: 4 Opties: 6 Map Delen: 6 Beheer Links 8 Functionaliteiten App-based 12 Hoger niveau 16 Acties op bestanden

Nadere informatie

WebDAV versus iwork.com op je ipad

WebDAV versus iwork.com op je ipad WebDAV versus iwork.com op je ipad Datum: 14 maart 2011 Versie: 1.0 Auteur: Pierre Gorissen (http://ictoblog.nl/ ) Een van de minder handige dingen aan de iwork verzameling voor de ipad (Pages, Keynote,

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

Programmeren in C ++ met wxwidgets les 5

Programmeren in C ++ met wxwidgets les 5 Elektrotechniek/Embedded Systems engineering inf2d Programmeren in C ++ met wxwidgets les 5 cursus 2009-2010 ir drs E.J Boks Les 5 Grafische toolkits Basisbeginselen gebruik grafische toolkit WxWidgets

Nadere informatie

Handleiding Tridion voor authors en editors

Handleiding Tridion voor authors en editors Handleiding Tridion voor authors en editors Wijzigen van items van vóór de herimplementatie (mei 2009) Telefoon helpdesk: 7500 E-mail: helpdesktridion@gmail.com. Juli 2009 Een bestaand item wijzigen Het

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Handleiding elas 2.0 Nesibe Balta <ness@letsgeel.org>

Handleiding elas 2.0 Nesibe Balta <ness@letsgeel.org> Handleiding elas 2.0 Nesibe Balta http://elas.vsbnet.be 1/18 Copyright (c)2010 Nesibe Balta Permission is granted to copy, distribute and/or modify this document under the terms of

Nadere informatie

SuperOffice Systeemvereisten

SuperOffice Systeemvereisten Minimale systeemvereisten voor SuperOffice CRM De minimale systeemvereisten voor SuperOffice CRM zijn tevens afhankelijk van het besturingssysteem en de services/applicaties die op het systeem actief zijn.

Nadere informatie

Inloggen. In samenwerking met Stijn Berben.

Inloggen. In samenwerking met Stijn Berben. Inloggen Ga naar www.hetjongleren.eu. Heb je al een gebruikersnaam en wachtwoord, log dan in op deze pagina (klik op deze link ): Vul hier je gebruikersnaam en wachtwoord in en klik op Inloggen. Bij succesvolle

Nadere informatie

Portability, Interoperability of toch maar Connectivity Portability, Interoperability of toch maar Connectivity.

Portability, Interoperability of toch maar Connectivity Portability, Interoperability of toch maar Connectivity. Portability, Interoperability of toch 1 Even Voorstellen Diploma s: 1980 Bachelor of Science Civil Engineering (Cairo, Egypte) 1986 Doctoraal in Geodesie (TU Delft, Nederland) Enige Automatiseringservaring:

Nadere informatie

Nederlands WMS - SLD Profiel. Versie 1.0

Nederlands WMS - SLD Profiel. Versie 1.0 Nederlands WMS - SLD Profiel Versie 1.0 Ravi: een profiel Ravi, netwerk voor geo-informatie Stichting Ravi is een netwerkorganisatie in het publieke domein en richt zich op de ruimtelijke ontwikkeling

Nadere informatie

Handleiding digitaal dossier

Handleiding digitaal dossier Handleiding digitaal dossier Handleiding digitaal dossier... 1 Omschrijving... 2 Login met persoonlijke account... 3 Geen persoonlijke account... 3 Automatisch omwisselen naar persoonlijke account... 4

Nadere informatie

Windows Live (Mail) Een introductie HCC Beginners IG H.C.A.H. Moerkerken h.moerkerken@kader.hcc.nl

Windows Live (Mail) Een introductie HCC Beginners IG H.C.A.H. Moerkerken h.moerkerken@kader.hcc.nl Windows Live (Mail) Een introductie HCC Beginners IG H.C.A.H. Moerkerken h.moerkerken@kader.hcc.nl Inhoud presentatie Overzicht Windows Live Windows Live Mail Live Mail Installeren Live Mail configureren

Nadere informatie

Handleiding Office 365

Handleiding Office 365 Handleiding Office 365 Document: Handleiding Office 365 Datum: 2-6-2016 Versie: 0.2 Auteur: Stefan de Vries en Ingrid de Bont Inhoudsopgave 1 Inleiding... 3 2 Aanmelden bij Office 365... 4 3 Navigeren

Nadere informatie

Boekingen gemaakt in de Agenda zijn 1:1 zichtbaar in het Planbord, andersom zijn boekingen gemaakt in het Planbord direct beschikbaar in de Agenda.

Boekingen gemaakt in de Agenda zijn 1:1 zichtbaar in het Planbord, andersom zijn boekingen gemaakt in het Planbord direct beschikbaar in de Agenda. Agenda In Timewax is de plannings informatie zowel per resource als per project beschikbaar. In de agenda zijn alle gemaakte boekingen zichtbaar. De weergave van de agenda kan worden aangepast aan de behoefte

Nadere informatie

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Chris de Kok 223548 TDI 3 Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Inhoud Inleiding... 3 Black box / White box... 3 XP... 3 SimpleTest... 3 Eclipse plugin... 4 GroupTest...

Nadere informatie

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar

ProjectHeatmap. Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar ProjectHeatmap Onderzoeksrapport v0.5 11-03-11 Dennis Wagenaar 1 Inhoudsopgave Inleiding...3 Gheat...4 Info...4 Voordelen...4 Nadelen...4 Google Fusion Tables...5 Info...5 Voordelen...5 Nadelen...5 OLHeatmap...6

Nadere informatie

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Voorbeeldproject Een Haagse SOA Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie

Nadere informatie

Microsoft Office 365. Handleiding

Microsoft Office 365. Handleiding Dit document omvat een effiëciente handleiding voor de webinterface van Microsoft Office 365. Het mailsysteem, contacten beheren, agenda onderhouden en het gebruiken van de cloudservice OneDrive zijn de

Nadere informatie

App4Broker : uw nieuwe app!

App4Broker : uw nieuwe app! App4Broker : uw nieuwe app! Pagina 1 van 20 Inhoudsopgave 1. U GEBRUIKT MYBROKER AL... 3 1.1. APP4BROKER DOWNLOADEN OP UW TABLET... 3 1.2. INSTALLATIE VAN HET CERTIFICAAT... 4 2. U HEEFT NOG NOOIT MET

Nadere informatie

Bijlage 8. Testprogramma brandreactiemodulen LBK

Bijlage 8. Testprogramma brandreactiemodulen LBK Bijlage 8 Testprogramma brandreactiemodulen LBK INHOUDSOPGAVE 1 Algemeen... 1 1.1 Introductie... 1 2 Algemene Setup Instructies... 2 2.1 Setup instructies... 2 2.2 Programma start... 2 3 Configureren...

Nadere informatie

C a s e S t u d y Y i f e C o n t a c t i n f o r m a t i e

C a s e S t u d y Y i f e C o n t a c t i n f o r m a t i e C a s e S t u d y Y i f e C o n t a c t i n f o r m a t i e Koen Piers Boudewijnlaan 1 Ondernemingsnr. 0808.450.557 0486/666.543 3590 Diepenbeek Rekeningnr. 979-5766597-49 koen@aurealis.be België D o e

Nadere informatie

Leerlingdossier & handelingsplannen. Welke mogelijkheden biedt de online tekstverwerker in ESIS? FAQ

Leerlingdossier & handelingsplannen. Welke mogelijkheden biedt de online tekstverwerker in ESIS? FAQ FAQ Leerlingdossier & handelingsplannen Welke mogelijkheden biedt de online tekstverwerker in ESIS? De online tekstverwerker beschikt over veel mogelijkheden voor het bewerken van tekst. U vindt de online

Nadere informatie

VPN verbinding maken HCCnet (Windows XP)

VPN verbinding maken HCCnet (Windows XP) VPN verbinding maken HCCnet (Windows XP) Deze beknopte handleiding geeft uitleg hoe via het Wireless Leiden netwerk een VPN (PPTP) verbinding kan worden opgezet naar het HCC internet. We gaan er voor het

Nadere informatie

XAMPP Web Development omgeving opzetten onder Windows.

XAMPP Web Development omgeving opzetten onder Windows. XAMPP Web Development omgeving opzetten onder Windows. Inhoudsopgave 1. Lees dit eerst... 2 2. Inleiding... 2 1 Xampp downloaden... 2 2 Installatie Xampp 1.7.4 op externe harddisk... 3 3 XAMPP herconfiguren...

Nadere informatie

Joomla! 1.0 vs Joomla! 1.5

Joomla! 1.0 vs Joomla! 1.5 Joomla! 1.0 vs Joomla! 1.5 Met de komst van Joomla! 1.5 is de originele code van Mambo flink op de schop gegaan. Verbeteringen: Joomla! Administrator backend ondersteunt meerdere talen Ondersteuning voor

Nadere informatie

Inhoudsopgave: Inhoudsopgave 1 Inleiding 2 Televisie menu. 4 Radio menu. 6 MiniGids. 8 TV Gids . Programma informatie oproepen. Kiezen en Kijken...

Inhoudsopgave: Inhoudsopgave 1 Inleiding 2 Televisie menu. 4 Radio menu. 6 MiniGids. 8 TV Gids . Programma informatie oproepen. Kiezen en Kijken... TV Menu Inhoudsopgave: Inhoudsopgave 1 Inleiding 2 Televisie menu. 4 Radio menu. 6 MiniGids. 8 TV Gids. 11 Programma informatie oproepen. 20 Kiezen en Kijken... 22 Bedienen van Kiezen en Kijken.. 24 Eredivisie

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement.

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Algemeen Met KYOCERA scannen naar UNIT4 Cura Documentmanagement beschikt u over een efficiënte oplossing om uw documenten te scannen

Nadere informatie

Screencast-O-Matic HANDLEIDING

Screencast-O-Matic HANDLEIDING Screencast-O-Matic HANDLEIDING Inhoud 1 Inleiding 3 2 Stap voor stap 3 3 Conclusie 9 4 Meer info 10 4.1 Hulp nodig? 10 4.2 Vragen en opmerkingen 10 4.3 Trefwoordenlijst 10 4.4 Lijst met afbeeldingen 10

Nadere informatie

bla bla Messenger Gebruikershandleiding

bla bla Messenger Gebruikershandleiding bla bla Messenger Gebruikershandleiding Messenger Messenger: Gebruikershandleiding publicatie datum dinsdag, 21. juli 2015 Version 1.2.0.0 Copyright 2006-2013 OPEN-XCHANGE Inc., Dit document is intellectueel

Nadere informatie