Skip to content
Newer
Older
100644 49 lines (37 sloc) 2.15 KB
4f99fbb @arthurschreiber Describe how the Bank assignment code was changed.
authored Apr 7, 2011
1 # OODB Assignment
2
3 ## Bank
4
5 In der `Anwendung`-Klasse wird die `banken.db4o` Datei geöffnet und der
6 `EmbeddedObjectContainer` an den Konstruktor der `BankGUI` übergeben. Dieser
7 Parameter wird im Konstruktor der `BankGUI` an `BankGUI.setDB` weitergegeben
8 und ist dadurch über `BankGUI.getDB` zugänglich.
9
10 Um sicherzustellen, dass die Datenbank beim Beenden der Anwendung korrekt
11 geschlossen wird, wurden ein `WindowAdapter` als `WindowListener` zum
4f433d1 @arthurschreiber Describe how the Malen code was changed.
authored Apr 7, 2011
12 Haupt-`JFrame` der `BankGUI` hinzugefügt. Dieser `WindowAdapter` schließt
4f99fbb @arthurschreiber Describe how the Bank assignment code was changed.
authored Apr 7, 2011
13 die Datenbank in seiner `windowClosing` Methode. Auch wurde die
14 `BankGUI.machEndeKnopf` Methode so verändert, dass die Datenbank korrekt
15 geschlossen wird.
16
17 Die `BankGUI.getBanken` Methode wurde so verändert, dass sie bei jedem
18 Aufruf eine die Banken direkt aus dem `EmbeddedObjectContainer` heraussucht
19 und diese als `List<Bank>` zurückgibt.
20
21 Die `BankGUI.machKontoLoeschknopf`, `BankGUI.machBankLoeschknopf`,
22 `BankGUI.machKarteKontoAnlegen` wurden so abgeändert, dass in ihnen nach
23 jeder Modifikation eines `Bank` oder `Konto`-Objektes die jeweiligen Objekte
24 in der Datenbank angelegt/aktualisiert/entfernt wurden.
4f433d1 @arthurschreiber Describe how the Malen code was changed.
authored Apr 7, 2011
25
26 ## Malen
27
28 Ähnlich wie in der Bank-Aufgabe wurde auch hier in der `Anwendung`-Klasse die
29 `malen.db4o` geöffnet und der `EmbeddedObjectContainer` an den Konstruktor
30 der `Malen`-Klasse übergeben.
31
32 Auch wurden wieder Änderungen analog zu denen in der Bank-Aufgabe gemacht, um
33 sicherzustellen dass die Datenbank beim Beenden der Anwendung korrekt
34 geschlossen wird.
35
36 `Malen.getZeichnung` gibt nun bei jedem Aufruf alle Zeichnungen direkt aus
37 der Datenbank zurück.
38
39 `Malen.addZeichnung` und `Malen.rmvZeichnung` arbeiten nun auch direkt auf
40 der Datenbank und der `ActionListener`, der in `Malen.machUpdate` definiert
41 wird, aktualisiert die aktuelle Zeichnung in der Datenbank.
42
43 Da Db4o jedoch standardmäßig Updates und Deletes nicht kaskadiert, wurde
44 die Konfiguration so angepasst, das Updates und Deletes der
45 `Zeichnung`-Klasse kaskadiert werden:
46
47 EmbeddedConfiguration config = Db4oEmbedded.newConfiguration();
48 config.common().objectClass(Zeichnung.class).cascadeOnUpdate(true);
49 config.common().objectClass(Zeichnung.class).cascadeOnDelete(true);
Something went wrong with that request. Please try again.