Voorbeeld van het implementeren van complexe objecten

Gevraagd: Maak een Web pagina waarin zich een complexe, interactieve applet bevindt (die door iemand anders is gemaakt). We willen dat je er blijk van geeft dat je de aansturing (met APPLET vanuit de HTML-file), middels parameters (PARAM) onder de knie hebt.

Werkwijze: Hergebruik de code uit het bestand met de wat vreemde naam: 'Cascade.class'. De instance van het object moet je een wat logischere naam geven, bijvoorbeeld: 'Transistor1'. Gebruik verder de tags 'APPLET' en de parameters 'PARAM' op de hier aangegeven manier. Deze applet dient nu eenmaal op deze wijze - met deze parameters maar niet perse met deze waarden - aangestuurd te worden. Er is met deze applet helaas weinig of geen andere variatie mogelijk. We stellen derhalve - als proefe van bekwaamheid - voor dat jullie een aantal andere instellingen voor het grid kiezen alsmede een andere background kiezen uit een andere background-file dan in dit voorbeeld.

De applet die in dit voorbeeld wordt gebruikt, is in het studiejaar 1999/2000 gemaakt in het kader van het keuzevak 'Computersimulatie als Leermiddel' ('CSaL'). Het is een model-driven simulatieprogramma van Vermaas, de Rijke, J. de Goeijen en R. Min, dat is gerealiseerd met behulp van het JavaTHESIS-systeem van J. Sikken, J. de Goeijen en R. Min, versie 3.9x.

Oplossing:

We noemen deze complexe applet een 'extern object'. Merk op dat de naam van dit externe object 'Boiler1' is. Deze naam kan en moet afwijken van de naam van de file waar de code van de applet zich in bevindt. De file-naam met de code van de applet ligt altijd vast. Die is hier 'Boiler.class'. Deze files bevinden zich in de library 'WebStuff'.

Je ziet in dit voorbeeld een groot aantal vooralsnog onduidelijke parameters (PARAM). Deze parameters stellen jouw applet - bij het inladen van de pagina - in. Wij noemen - in het kader van dit vak - deze parameters ook wel 'statische parameters'. We spreken dan van de 'default' instelling van de applets. Deze parameters zijn eigenlijk gewoon de properties van dit externe object. Het betreft de naam, de naam van de file waar de background zich in bevindt, het aantal vakken in het rooster (het grid), de breedte van de ruimte waarbinnen de applet moet komen, de witranden (de offset), etc. Probeer bepaalde waarden zelf maar eens uit. En kijk naar het verschil. Dan zie je (vanzelf) de functies die de afzonderlijke parameters c.q. properties hier hebben.

Je ziet een applet met een rooster van 3 kolommen en 10 rijen. Als je op de knop 'continu' klikt kun je zien (en leren) hoe het gedrag van het onderliggend fenomeen van een boiler zich gedraagt en reageert op veranderingen die je tijdens het 'runnen' aanbrengt. Het rooster is met de parameters (PARAM) zodanig ingesteld dat de vertikale as in 10 stukken en de horizontale as in 3 stukken wordt verdeeld. Bij de BOILER kan de temparatuur namelijk tussen de 0 en de 100 graden schommelen en we wensen de tijd drie dagen maximaal te laten lopen. Als de tijd begint te lopen, komt op het tijdstip 6:00 uur de zon op. De zon is om 12:00 uur maximaal qua intensiteit. Om 18:00 uur is de zon weer geheel verdwenen. Het water in het boilervat blijft echter de warmte behouden die er in is opgeslagen geworden. De ongelijke verdeling van de warmte in de 10 segmenten van wege het feit dat het water langzaam stroomt, wordt langzaam minder ongelijk. Het warmste segment zit (hier) in het midden en het koudste segment zit (hier) onderin. Uiteindelijk zal het water in alle segmenten dezelfde temperatuur krijgen.

De veranderingen die je kunt aanbrengen - zoals het meer- en minder laten stralen van de zon - zijn in te stellen met de scrollbars links.

Korte toelichting zonneboiler:


De zonneboiler is opgebouwd uit een collector en een vat. Het vat bevat 10 segmenten. Slechts de temperatuur in de segmenten 1, 5 en 10 wordt grafisch weergegeven en de warmte van de zon.

Voor uitsluitend het implementeren van deze complexe applet heb je niet alle gegevens en inzicht in de werking van de zonneboiler nodig. Wil je je desondanks beter orienteren in alle ins en outs ervan, dan kun je elders op onze sites meer informatie vinden.

Enschede, 15 dec. 2000; updated 27 mrt. 2001