diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2016-01-13 01:11:14 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2016-01-13 02:02:22 +0100 |
| commit | 76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a (patch) | |
| tree | c75ef408997c0073b9a57d5bdffec044d9ecd27c /src/de/fhswf/in/inf/se | |
| parent | 5c80d6cd7611efe24234f9f27a5b3751b21113a7 (diff) | |
| download | Projektthemenvergabe-76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a.tar.gz Projektthemenvergabe-76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a.zip | |
Persist ansprechpartner
Diffstat (limited to 'src/de/fhswf/in/inf/se')
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java | 97 | ||||
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java | 31 |
2 files changed, 128 insertions, 0 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java index 15d13c1..ceb0a6b 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java @@ -470,6 +470,103 @@ public class Main extends Application } } }); + + PreparedStatement deleteAnsprechpartner = dbConnection + .prepareStatement( + "DELETE FROM ansprechpartner WHERE vorname=? and nachname=?"); + PreparedStatement addAnsprechpartner = dbConnection.prepareStatement( + "INSERT INTO ansprechpartner (vorname, nachname, organisation) VALUES (?, ?, ?)"); + PreparedStatement updateAnsprechpartner = dbConnection + .prepareStatement( + "UPDATE ansprechpartner SET vorname=?,nachname=?,organisation=? WHERE vorname=? and nachname=?"); + + ansprechpartner.addListener(( + ListChangeListener.Change<? extends Ansprechpartner> listener) -> { + while (listener.next()) + { + if (listener.wasUpdated()) + { + for (int i = listener.getFrom(); i < listener.getTo(); i++) + { + try + { + Ansprechpartner tmpAnsprechpartner = listener + .getList().get(i); + + updateAnsprechpartner.setString(1, + tmpAnsprechpartner.getVorname()); + updateAnsprechpartner.setString(2, + tmpAnsprechpartner.getNachname()); + + if (tmpAnsprechpartner.getOrganisation() != null) + { + updateAnsprechpartner.setString(3, + tmpAnsprechpartner.getOrganisation() + .getName()); + } + else + { + updateAnsprechpartner.setString(3, null); + } + + updateAnsprechpartner.setString(4, + tmpAnsprechpartner.getOldVorname()); + updateAnsprechpartner.setString(5, + tmpAnsprechpartner.getOldNachname()); + + updateAnsprechpartner.execute(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + } + else + { + for (Ansprechpartner removed : listener.getRemoved()) + { + try + { + deleteAnsprechpartner.setString(1, + removed.getVorname()); + deleteAnsprechpartner.setString(2, + removed.getNachname()); + + deleteAnsprechpartner.execute(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + for (Ansprechpartner added : listener.getAddedSubList()) + { + try + { + addAnsprechpartner.setString(1, added.getVorname()); + addAnsprechpartner.setString(2, added.getNachname()); + + if (added.getOrganisation() != null) + { + addAnsprechpartner.setString(3, + added.getOrganisation().getName()); + } + else + { + addAnsprechpartner.setString(3, null); + } + + addAnsprechpartner.execute(); + } + catch (SQLException e) + { + e.printStackTrace(); + } + } + } + } + }); } catch (SQLException e) { diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java index 21dbd0d..bdf8918 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java @@ -29,6 +29,10 @@ public class Ansprechpartner private ObjectProperty<Organisation> organisation = new SimpleObjectProperty<>(); + private String oldVorname = ""; + + private String oldNachname = ""; + /** * Generates an extractor that fires when a property of a list value * changes. @@ -96,6 +100,9 @@ public class Ansprechpartner this.vorname.set(vorname); this.nachname.set(nachname); + + oldVorname = vorname; + oldNachname = nachname; } /** @@ -284,4 +291,28 @@ public class Ansprechpartner { return vorname.get() + " " + nachname.get(); } + + /** + * Get the previous first name of this Ansprechpartner. + * + */ + public String getOldVorname() + { + String tmp = oldVorname; + oldVorname = vorname.get(); + + return tmp; + } + + /** + * Get the previous last name of this Ansprechpartner. + * + */ + public String getOldNachname() + { + String tmp = oldNachname; + oldNachname = nachname.get(); + + return tmp; + } }
\ No newline at end of file |
