Exkurs - Modellierung der GUI

Objekt zur Verwaltung der grafischen Benutzeroberfläche

Die grafische Benutzeroberfläche soll in etwa folgende Gestalt haben:

GUI

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.

Trennung Datenmodell - GUI

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.

Klassendiagramm - GUI

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
X

Fehler melden

X

Suche