Exkurs - Modellierung der GUI
Objekt zur Verwaltung der grafischen Benutzeroberfläche
Die grafische Benutzeroberfläche soll in etwa folgende Gestalt haben:
Diese grafische Benutzeroberfläche soll von einem Objekt der Klasse GUILernkartei
verwaltet werden. Nach dem Prinzip
Trennung zwischen Datenmodell und GUI
soll dieses Objekt Zugriff auf die Datenmodell-Objekte haben,
ein umgekehrter Zugriff soll hingegen nicht möglich sein.
Die folgende Abbildung verdeutlicht die Klassenstruktur.
Ein Objekt der Klasse GUILernkartei
benötigt also geeignete Referenzattribute,
um Referenzen auf Datenmodell-Objekte zu verwalten.
Zusätzlich soll ein Objekt der Klasse GUILernkartei
ein Attribut zustand
haben, mit dem der aktuelle Verarbeitungszustand verwaltet werden soll.
Wir benutzen die folgende Codierung der Zustände:
- 0: Karten anzeigen
- 1: Karten aufnehmen bzw. löschen
- 2: Stichwort abfragen
- 3: Erläuterung abfragen
Zur Anzeige von Karten soll ein Objekt der Klasse GUILernkartei
geeignete Methoden haben.
Zusätzlich soll ein Objekt der Klasse GUILernkartei
geeignete Methoden zur Verarbeitung von Ereignissen
zur Verfügung stellen.
Verhalten der grafischen Benutzeroberfläche
Mit Hilfe einer Zustandstabelle soll das gewünschte Verhalten der grafischen Benutzeroberfläche beschrieben werden. Vorerst sollen nur die Zustände 0 und 1 betrachtet werden.
Die genaue Beschreibung der Funktionalitäten der GUI liefert auch eine Kontrolle, ob die Datenmodell-Objekte alle hierfür erforderlichen Methoden bereitstellen.
Zustand | Ereignis | Aktionen | Folgezustand |
---|---|---|---|
0 | [Karte aufnehmen],[neue Karte],[Karte entfernen] | keine | 0 |
1 | [neue Karte] | leereKarteAnzeigen() | 1 |
1 | [Karte aufnehmen] | kartenmanager.karteHinzufuegen(bezeichner, bedeutungen); karteAnzeigen() | 1 |
1 | [Karte entfernen] | kartenmanager.aktuelleKarteLoeschen(); karteAnzeigen() | 1 |
0,1 | [Anfang] | kartenmanager.anfangKartenstapel(); karteAnzeigen() | gleicher Zustand |
0,1 | [weiter],[zurück],[Ende] | analog | gleicher Zustand |
0,1 | (0) | kartenmanager.anfangKartenstapel(); self.karteAnzeigen(self.zustand.get()) | 0 |
0,1 | (1) | kartenmanager.anfangKartenstapel(); self.karteAnzeigen(self.zustand.get()) | 1 |