summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/projektthemenvergabe
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java168
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java14
2 files changed, 182 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 a7d2ceb..b9789c1 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
@@ -8,6 +8,7 @@ import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.Types;
import java.util.HashMap;
import de.fhswf.in.inf.se.projektthemenvergabe.model.Ansprechpartner;
@@ -640,6 +641,173 @@ public class Main extends Application
}
}
});
+
+ PreparedStatement deleteProjekt = dbConnection
+ .prepareStatement("DELETE FROM projekt WHERE projektthema=?");
+ PreparedStatement addProjekt = dbConnection.prepareStatement(
+ "INSERT INTO projekt (projektthema, skizze, projektbeschreibung, projektinhalte, student1, student2, student3, ansprechpartnerVorname, ansprechpartnerNachname, status, dozentenkommentar) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
+ PreparedStatement updateProjekt = dbConnection.prepareStatement(
+ "UPDATE projekt SET projektthema=?, skizze=?, projektbeschreibung=?, projektinhalte=?, student1=?, student2=?, student3=?, ansprechpartnerVorname=?, ansprechpartnerNachname=?, status=?, dozentenkommentar=? WHERE projektthema=?");
+
+ projekte.addListener(
+ (ListChangeListener.Change<? extends Projekt> listener) -> {
+ while (listener.next())
+ {
+ if (listener.wasUpdated())
+ {
+ for (int i = listener.getFrom(); i < listener
+ .getTo(); i++)
+ {
+ try
+ {
+ Projekt tmpProjekt = listener.getList().get(i);
+
+ updateProjekt.setString(1,
+ tmpProjekt.getProjektthema());
+ updateProjekt.setString(2,
+ tmpProjekt.getSkizze());
+ updateProjekt.setString(3,
+ tmpProjekt.getProjektbeschreibung());
+ updateProjekt.setString(4,
+ tmpProjekt.getProjekteinhalte());
+ if (tmpProjekt.getStudent1() != null)
+ {
+ updateProjekt.setInt(5, tmpProjekt
+ .getStudent1().getMatrikelnummer());
+ }
+ else
+ {
+ updateProjekt.setNull(5, Types.INTEGER);
+ }
+ if (tmpProjekt.getStudent2() != null)
+ {
+ updateProjekt.setInt(6, tmpProjekt
+ .getStudent2().getMatrikelnummer());
+ }
+ else
+ {
+ updateProjekt.setNull(6, Types.INTEGER);
+ }
+ if (tmpProjekt.getStudent3() != null)
+ {
+ updateProjekt.setInt(7, tmpProjekt
+ .getStudent3().getMatrikelnummer());
+ }
+ else
+ {
+ updateProjekt.setNull(7, Types.INTEGER);
+ }
+ if (tmpProjekt.getAnsprechpartner() != null)
+ {
+ updateProjekt.setString(8, tmpProjekt
+ .getAnsprechpartner().getVorname());
+ updateProjekt.setString(9, tmpProjekt
+ .getAnsprechpartner().getNachname());
+ }
+ else
+ {
+ updateProjekt.setString(8, null);
+ updateProjekt.setString(9, null);
+ }
+
+ updateProjekt.setString(10,
+ tmpProjekt.getStatus().name());
+ updateProjekt.setString(11,
+ tmpProjekt.getDozentenkommentar());
+
+ updateProjekt.setString(12,
+ tmpProjekt.getOldProjektthema());
+
+ updateProjekt.execute();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ else
+ {
+ for (Projekt removed : listener.getRemoved())
+ {
+ try
+ {
+ deleteProjekt.setString(1,
+ removed.getProjektthema());
+
+ deleteProjekt.execute();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ for (Projekt added : listener.getAddedSubList())
+ {
+ try
+ {
+ addProjekt.setString(1,
+ added.getProjektthema());
+ addProjekt.setString(2, added.getSkizze());
+ addProjekt.setString(3,
+ added.getProjektbeschreibung());
+ addProjekt.setString(4,
+ added.getProjekteinhalte());
+ if (added.getStudent1() != null)
+ {
+ addProjekt.setInt(5, added.getStudent1()
+ .getMatrikelnummer());
+ }
+ else
+ {
+ addProjekt.setNull(5, Types.INTEGER);
+ }
+ if (added.getStudent2() != null)
+ {
+ addProjekt.setInt(6, added.getStudent2()
+ .getMatrikelnummer());
+ }
+ else
+ {
+ addProjekt.setNull(6, Types.INTEGER);
+ }
+ if (added.getStudent3() != null)
+ {
+ addProjekt.setInt(7, added.getStudent3()
+ .getMatrikelnummer());
+ }
+ else
+ {
+ addProjekt.setNull(7, Types.INTEGER);
+ }
+ if (added.getAnsprechpartner() != null)
+ {
+ addProjekt.setString(8, added
+ .getAnsprechpartner().getVorname());
+ addProjekt.setString(9, added
+ .getAnsprechpartner().getNachname());
+ }
+ else
+ {
+ addProjekt.setString(8, null);
+ addProjekt.setString(9, null);
+ }
+
+ addProjekt.setString(10,
+ added.getStatus().name());
+ addProjekt.setString(11,
+ added.getDozentenkommentar());
+
+ addProjekt.execute();
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ });
}
catch (SQLException e)
{
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java
index 53972f5..2c5d93f 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java
@@ -37,6 +37,8 @@ public class Projekt
private StringProperty dozentenkommentar = new SimpleStringProperty("");
+ private String oldProjektthema;
+
/**
* Generates an extractor that fires when a property of a list value
* changes.
@@ -145,6 +147,7 @@ public class Projekt
this.ansprechpartner.set(ansprechpartner);
this.ansprechpartner.get().addProjekt(this);
this.projektthema.set(projektthema);
+ oldProjektthema = projektthema;
}
/**
@@ -508,4 +511,15 @@ public class Projekt
return ((Projekt) obj).projektthema.get().equals(projektthema.get());
}
+ /**
+ * Get the previous projektthema of this Projekt.
+ *
+ */
+ public String getOldProjektthema()
+ {
+ String tmp = oldProjektthema;
+ oldProjektthema = projektthema.get();
+
+ return tmp;
+ }
} \ No newline at end of file