summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java97
1 files changed, 97 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)
{