summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java137
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java76
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java16
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java75
4 files changed, 29 insertions, 275 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
index e786f78..bd0c918 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/Main.java
@@ -3,20 +3,11 @@
*/
package de.fhswf.in.inf.se.projektthemenvergabe;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.HashMap;
-
import de.fhswf.in.inf.se.projektthemenvergabe.model.Ansprechpartner;
import de.fhswf.in.inf.se.projektthemenvergabe.model.Organisation;
import de.fhswf.in.inf.se.projektthemenvergabe.view.AnsprechpartnerListeController;
import javafx.application.Application;
-import javafx.application.Platform;
import javafx.collections.FXCollections;
-import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
@@ -39,8 +30,6 @@ public class Main extends Application
private Stage primaryStage;
- private Connection dbConnection;
-
/*
* (non-Javadoc)
*
@@ -51,19 +40,6 @@ public class Main extends Application
{
this.primaryStage = primaryStage;
- connectToDatabase();
- loadData();
-
- ansprechpartner.addListener((
- ListChangeListener.Change<? extends Ansprechpartner> listener) -> {
- saveData();
- });
-
- organisation.addListener(
- (ListChangeListener.Change<? extends Organisation> listener) -> {
- saveData();
- });
-
try
{
FXMLLoader loader = new FXMLLoader(
@@ -125,117 +101,4 @@ public class Main extends Application
{
launch(args);
}
-
- /**
- * TODO Add method comment here
- *
- */
- private void connectToDatabase()
- {
- try
- {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- dbConnection = DriverManager
- .getConnection("jdbc:mysql://localhost/projekte", "root", "");
- }
- catch (ClassNotFoundException | InstantiationException
- | IllegalAccessException | SQLException e)
- {
- e.printStackTrace();
- Platform.exit();
- }
- }
-
- /**
- * TODO Add method comment here
- *
- */
- private void loadData()
- {
- try
- {
- ansprechpartner.clear();
- organisation.clear();
-
- HashMap<String, Organisation> orga = new HashMap<>();
-
- ResultSet rs = dbConnection.createStatement()
- .executeQuery("SELECT * from organisation");
- while (rs.next())
- {
- Organisation organisation = new Organisation();
- organisation.setName(rs.getString("name"));
-
- orga.put(organisation.getName(), organisation);
- }
-
- rs = dbConnection.createStatement()
- .executeQuery("SELECT * from ansprechpartner");
- while (rs.next())
- {
- Organisation organisation = orga
- .get(rs.getString("organisation"));
-
- Ansprechpartner ansprechpartner = new Ansprechpartner(
- organisation);
- ansprechpartner.setVorname(rs.getString("vorname"));
- ansprechpartner.setNachname(rs.getString("nachname"));
-
- this.ansprechpartner.add(ansprechpartner);
- }
-
- organisation.addAll(orga.values());
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- Platform.exit();
- }
- }
-
- private void saveData()
- {
- try
- {
- dbConnection.createStatement()
- .execute("SET FOREIGN_KEY_CHECKS = 0;");
- dbConnection.createStatement()
- .execute("TRUNCATE TABLE ansprechpartner");
- dbConnection.createStatement()
- .execute("TRUNCATE TABLE organisation");
- dbConnection.createStatement()
- .execute("SET FOREIGN_KEY_CHECKS = 1;");
-
- PreparedStatement ps = dbConnection.prepareStatement(
- "INSERT into organisation (name) VALUES (?)");
- for (Organisation org : organisation)
- {
- ps.setString(1, org.getName());
-
- ps.execute();
- }
-
- ps = dbConnection.prepareStatement(
- "INSERT into ansprechpartner (vorname, nachname, organisation) VALUES (?, ?, ?)");
- for (Ansprechpartner ans : ansprechpartner)
- {
- ps.setString(1, ans.getVorname());
- ps.setString(2, ans.getNachname());
- if (ans.getOrganisation() != null)
- {
- ps.setString(3, ans.getOrganisation().getName());
- }
- else
- {
- ps.setString(3, null);
- }
-
- ps.execute();
- }
- }
- catch (SQLException e)
- {
- e.printStackTrace();
- }
- }
}
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 72bf249..fb59831 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java
@@ -4,8 +4,6 @@ import java.util.ArrayList;
import java.util.List;
import javafx.beans.Observable;
-import javafx.beans.property.ObjectProperty;
-import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.util.Callback;
@@ -16,7 +14,7 @@ public class Ansprechpartner
private StringProperty nachname = new SimpleStringProperty();
- private ObjectProperty<Organisation> organisation = new SimpleObjectProperty<>();
+ private Organisation organisation;
/**
* Generates an extractor that fires when a property of a list value
@@ -26,21 +24,10 @@ public class Ansprechpartner
*/
public static Callback<Ansprechpartner, Observable[]> extractor()
{
- return ansprechpartner -> {
- List<Observable> extractorList = new ArrayList<>();
-
- extractorList.add(ansprechpartner.vornameProperty());
- extractorList.add(ansprechpartner.nachnameProperty());
- extractorList.add(ansprechpartner.organisationProperty());
-
- if (ansprechpartner.getOrganisation() != null)
- {
- extractorList
- .add(ansprechpartner.getOrganisation().nameProperty());
- }
-
- return extractorList.toArray(new Observable[extractorList.size()]);
- };
+ return ansprechpartner -> new Observable[] {
+ ansprechpartner.vornameProperty(),
+ ansprechpartner.nachnameProperty(),
+ ansprechpartner.getOrganisation().nameProperty() };
}
/**
@@ -50,23 +37,15 @@ public class Ansprechpartner
*/
public Ansprechpartner(Organisation organisation)
{
- this.organisation.set(organisation);
-
- if (organisation != null)
+ if (organisation == null)
{
- this.organisation.get().addAnsprechpartner(this);
+ throw new IllegalArgumentException(
+ "Ansprechpartner sollten nicht arbeitslos sein.");
}
+ this.organisation = organisation;
+ this.organisation.addAnsprechpartner(this);
}
- /**
- * Getter for property organisation.
- *
- * @return Returns the organisation.
- */
- public ObjectProperty<Organisation> organisationProperty()
- {
- return organisation;
- }
/**
* Getter for organisation.
@@ -75,7 +54,7 @@ public class Ansprechpartner
*/
public Organisation getOrganisation()
{
- return organisation.get();
+ return organisation;
}
/**
@@ -86,17 +65,14 @@ public class Ansprechpartner
*/
public void setOrganisation(Organisation organisation)
{
- if (this.organisation.get() != null)
+ if (organisation == null)
{
- this.organisation.get().removeAnsprechpartner(this);
- }
-
- this.organisation.set(organisation);
-
- if (organisation != null)
- {
- organisation.addAnsprechpartner(this);
+ throw new IllegalArgumentException(
+ "Ansprechpartner sollten nicht arbeitslos sein.");
}
+ this.organisation.removeAnsprechpartner(this);
+ this.organisation = organisation;
+ this.organisation.addAnsprechpartner(this);
}
/**
@@ -160,22 +136,4 @@ public class Ansprechpartner
{
this.vorname.set(vorname);
}
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (!(obj instanceof Ansprechpartner))
- {
- return false;
- }
-
- return ((Ansprechpartner) obj).vorname.get().equals(vorname.get())
- && ((Ansprechpartner) obj).nachname.get().equals(nachname.get());
- }
-
} \ No newline at end of file
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java
index 4525045..dca4511 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java
@@ -107,20 +107,4 @@ public class Organisation
{
return name.get();
}
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj)
- {
- if (!(obj instanceof Organisation))
- {
- return false;
- }
-
- return ((Organisation) obj).name.get().equals(name.get());
- }
} \ No newline at end of file
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java
index ee036e2..499c04e 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java
@@ -71,18 +71,7 @@ public class AnsprechpartnerListeController
ansprechpartnerVornameTableColumn
.setCellFactory(TextFieldTableCell.forTableColumn());
ansprechpartnerVornameTableColumn.setOnEditCommit((data) -> {
- if (!data.getNewValue().isEmpty())
- {
- Ansprechpartner tmpAns = new Ansprechpartner(
- data.getRowValue().getOrganisation());
- tmpAns.setNachname(data.getRowValue().getNachname());
- tmpAns.setVorname(data.getNewValue().trim());
-
- if (!main.getAnsprechpartner().contains(tmpAns))
- {
- data.getRowValue().setVorname(tmpAns.getVorname());
- }
- }
+ data.getRowValue().setVorname(data.getNewValue().trim());
// Hack, aktualisiert TableView, da Observable beim setzen nicht neu
// abgefragt wird
@@ -95,18 +84,7 @@ public class AnsprechpartnerListeController
ansprechpartnerNachnameTableColumn
.setCellFactory(TextFieldTableCell.forTableColumn());
ansprechpartnerNachnameTableColumn.setOnEditCommit((data) -> {
- if (!data.getNewValue().isEmpty())
- {
- Ansprechpartner tmpAns = new Ansprechpartner(
- data.getRowValue().getOrganisation());
- tmpAns.setVorname(data.getRowValue().getVorname());
- tmpAns.setNachname(data.getNewValue().trim());
-
- if (!main.getAnsprechpartner().contains(tmpAns))
- {
- data.getRowValue().setNachname(tmpAns.getNachname());
- }
- }
+ data.getRowValue().setNachname(data.getNewValue().trim());
// Hack, aktualisiert TableView, da Observable beim setzen nicht neu
// abgefragt wird
@@ -115,26 +93,14 @@ public class AnsprechpartnerListeController
});
organisationsNameTableColumn.setCellValueFactory((data) -> {
- data.getValue().organisationProperty().addListener((listener) -> {
- // Hack, aktualisiert TableView, da Organisation kein
- // Observable
+ data.getValue().getOrganisation().nameProperty()
+ .addListener((listener) -> {
+ // Hack, aktualisiert TableView, da Organisation kein Observable
// ist
organisationsNameTableColumn.setVisible(false);
organisationsNameTableColumn.setVisible(true);
});
- if (data.getValue().getOrganisation() != null)
- {
- data.getValue().getOrganisation().nameProperty()
- .addListener((listener) -> {
- // Hack, aktualisiert TableView, da Organisation kein
- // Observable
- // ist
- organisationsNameTableColumn.setVisible(false);
- organisationsNameTableColumn.setVisible(true);
- });
- return data.getValue().organisationProperty();
- }
- return new SimpleObjectProperty<Organisation>(new Organisation());
+ return new SimpleObjectProperty<>(data.getValue().getOrganisation());
});
organisationsNameTableColumn.setOnEditCommit((data) -> {
data.getRowValue().setOrganisation(data.getNewValue());
@@ -185,10 +151,7 @@ public class AnsprechpartnerListeController
{
Organisation organisation = new Organisation();
organisation.setName(result.get().trim());
- if (!main.getOrganisation().contains(organisation))
- {
- main.getOrganisation().add(organisation);
- }
+ main.getOrganisation().add(organisation);
}
}
@@ -211,12 +174,7 @@ public class AnsprechpartnerListeController
Optional<String> result = dialog.showAndWait();
if (result.isPresent() && !result.get().trim().isEmpty())
{
- Organisation tmpOrg = new Organisation();
- tmpOrg.setName(result.get().trim());
- if (!main.getOrganisation().contains(tmpOrg))
- {
- organisation.setName(tmpOrg.getName());
- }
+ organisation.setName(result.get().trim());
}
}
@@ -246,14 +204,8 @@ public class AnsprechpartnerListeController
if (result == null || result.get() == ButtonType.OK)
{
- Ansprechpartner[] ansArray = selectedItem.getAnsprechpartner()
- .toArray(new Ansprechpartner[selectedItem
- .getAnsprechpartner().size()]);
- for (Ansprechpartner ans : ansArray)
- {
- ans.setOrganisation(null);
- }
-
+ main.getAnsprechpartner()
+ .removeAll(selectedItem.getAnsprechpartner());
main.getOrganisation().remove(organisationComboBox.getValue());
}
}
@@ -271,7 +223,7 @@ public class AnsprechpartnerListeController
if (selectedItem != null)
{
- selectedItem.setOrganisation(null);
+ selectedItem.getOrganisation().removeAnsprechpartner(selectedItem);
main.getAnsprechpartner().remove(selectedItem);
}
}
@@ -302,10 +254,7 @@ public class AnsprechpartnerListeController
ansprechpartner.setVorname(result.get().getKey().trim());
ansprechpartner.setNachname(result.get().getValue().trim());
- if (!main.getAnsprechpartner().contains(ansprechpartner))
- {
- main.getAnsprechpartner().add(ansprechpartner);
- }
+ main.getAnsprechpartner().add(ansprechpartner);
}
}
}