diff options
Diffstat (limited to 'src/de')
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java | 168 | ||||
| -rw-r--r-- | src/de/fhswf/in/inf/se/projektthemenvergabe/model/Projekt.java | 14 |
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 |
