2BHIF POS PLÜ 2021-05-31

1. Allgemeines

Das Eclipse-Projekt hat EXAKT den Namen PLUE-2021-05-31-nachname, (nachname komplett in Kleinbuchstaben) wobei Bauers bitte um den ersten unterschiedlichen Buchstaben des Vornamens erweitern (Bauer_n, Bauer_x)

Das Template-Projekt soll importiert werden, danach mit Refactor-Rename umenannt werden, wobei die Checkbox Update references aktiv sein soll! Abgegeben wird das Eclipse-Projekt als ZIP-Archiv auf Moodle.

Das Java-Package CHANGE_THIS ist umzubenennen auf den eigenen Nachnamen (mit der oben genannten Bauer-Ausnahme).

Weiters ist auch die CSS-Datei entsprechend umzubenennen.

Zum Schluss sollte eine projektweite Ersetzung von CHANGE_THIS auf den eigenen Nachnamen wie oben beschrieben erfolgen.

Korrektheit ist hier UNBEDINGT erforderlich!

2. Aufgabenstellung

Das Projekt-Template enthält eine fast lauffähige Applikation, die ergänzt bzw. an wenigen Stellen umgebaut werden muss.

Die nötigen Infos sind als Kommentare mit Beginn TODO im Code enthalten.

Eclipse kann diese Kommentare in einer eigenen Liste anklickbar auflisten. Dazu: Menü Window → Show View …​ → Tasks auswählen (NICHT 'Task List'!).

Im dazugehörigen Tab gibt es rechts oben ein anklickbares Trichter-Symbol, wo man den Scope einstellen kann auf On elements in selected projects. Weiters sollten unter Types selektiert sein: Java Task, CSS Task. Unter Descriptions sollte naheliegenderweise ausgewählt sein contains und als Text TODO.

Am besten zuerst die Fehler beheben (z.B. fehlende Exception-Klasse), dann die App starten, um einen Eindruck zu erhalten.

Die App ist gegliedert die Packages 'model', 'view', 'controller', 'exception', das Applikations-Objekt liegt "neben" obigen Packages und heißt JfxApp. Darin ist außer Anpassung des Stylesheet-Namens nichts zu ändern.

Weitere wichtige Klassen:

  • AppModel …​ das Model, in dem die Nicht-GUI-Arbeiten getan werden

  • Person …​ die Datenklasse. Ist großteils vorhanden

  • RootPane …​ der View-Container, in dem alle GUI-Elemente liegen

  • AppController …​ Zuständig für Zugriff auf das Model, wo nötig sowie großteils für die "Intelligenz" des GUI

  • BadParamException …​ selbst definierte Exception. Die üblichen 2 Konstruktoren werden benötigt (nur Message sowie Message, Cause)

Zu implementierende Klasse: PersonDetailTab (erbt von Tab).
Sollte die dazugehörige Person als Instanzvariable enthalten
Jede Person hat ihren eigenen Tab, es können nicht 2 Tabs für eine Person geöffnet werden (d.h. Tabs (TabView.getTabs() …​) durchsuchen, ob gewünschte Person schon offen)