summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2016-01-13 01:11:14 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2016-01-13 02:02:22 +0100
commit76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a (patch)
treec75ef408997c0073b9a57d5bdffec044d9ecd27c /src
parent5c80d6cd7611efe24234f9f27a5b3751b21113a7 (diff)
downloadProjektthemenvergabe-76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a.tar.gz
Projektthemenvergabe-76f2ce493f550ff6c5c6faacbb1fb41a0bd41c9a.zip
Persist ansprechpartner
Diffstat (limited to 'src')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java97
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java31
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