summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2016-01-06 19:12:09 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2016-01-06 19:12:09 +0100
commitc2d643fe7e88efa19ddc87f19f38bb283051d415 (patch)
treec873acb04a952b21a2ba3f7fd381ae0d6e209818 /src/de/fhswf/in/inf/se
parent7ef00866826042ea41d137d29a2a40beb1338348 (diff)
downloadProjektthemenvergabe-c2d643fe7e88efa19ddc87f19f38bb283051d415.tar.gz
Projektthemenvergabe-c2d643fe7e88efa19ddc87f19f38bb283051d415.zip
Readd vertical prototype specific things
This reverts commit 4aade633751694319a403a415134018a0b213b00.
Diffstat (limited to 'src/de/fhswf/in/inf/se')
-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
3 files changed, 138 insertions, 29 deletions
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 10ab7b1..7b708f4 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Ansprechpartner.java
@@ -5,6 +5,8 @@ import java.util.Collections;
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;
@@ -17,7 +19,7 @@ public class Ansprechpartner
private ArrayList<Projekt> projekt = new ArrayList<Projekt>();
- private Organisation organisation;
+ private ObjectProperty<Organisation> organisation = new SimpleObjectProperty<>();
/**
* Generates an extractor that fires when a property of a list value
@@ -27,10 +29,21 @@ public class Ansprechpartner
*/
public static Callback<Ansprechpartner, Observable[]> extractor()
{
- return ansprechpartner -> new Observable[] {
- ansprechpartner.vornameProperty(),
- ansprechpartner.nachnameProperty(),
- ansprechpartner.getOrganisation().nameProperty() };
+ 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()]);
+ };
}
/**
@@ -40,13 +53,12 @@ public class Ansprechpartner
*/
public Ansprechpartner(Organisation organisation)
{
- if (organisation == null)
+ this.organisation.set(organisation);
+
+ if (organisation != null)
{
- throw new IllegalArgumentException(
- "Ansprechpartner sollten nicht arbeitslos sein.");
+ this.organisation.get().addAnsprechpartner(this);
}
- this.organisation = organisation;
- this.organisation.addAnsprechpartner(this);
}
/**
@@ -80,13 +92,23 @@ public class Ansprechpartner
}
/**
+ * Getter for property organisation.
+ *
+ * @return Returns the organisation.
+ */
+ public ObjectProperty<Organisation> organisationProperty()
+ {
+ return organisation;
+ }
+
+ /**
* Getter for organisation.
*
* @return Returns the organisation.
*/
public Organisation getOrganisation()
{
- return organisation;
+ return organisation.get();
}
/**
@@ -97,14 +119,17 @@ public class Ansprechpartner
*/
public void setOrganisation(Organisation organisation)
{
- if (organisation == null)
+ if (this.organisation.get() != null)
+ {
+ this.organisation.get().removeAnsprechpartner(this);
+ }
+
+ this.organisation.set(organisation);
+
+ if (organisation != null)
{
- throw new IllegalArgumentException(
- "Ansprechpartner sollten nicht arbeitslos sein.");
+ organisation.addAnsprechpartner(this);
}
- this.organisation.removeAnsprechpartner(this);
- this.organisation = organisation;
- this.organisation.addAnsprechpartner(this);
}
/**
@@ -172,6 +197,23 @@ public class Ansprechpartner
/*
* (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());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
* @see java.lang.Object#toString()
*/
@Override
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 dca4511..4525045 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/model/Organisation.java
@@ -107,4 +107,20 @@ 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 71745e3..019fdc0 100644
--- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java
@@ -71,7 +71,18 @@ public class AnsprechpartnerListeController
ansprechpartnerVornameTableColumn
.setCellFactory(TextFieldTableCell.forTableColumn());
ansprechpartnerVornameTableColumn.setOnEditCommit((data) -> {
- data.getRowValue().setVorname(data.getNewValue().trim());
+ 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());
+ }
+ }
// Hack, aktualisiert TableView, da Observable beim setzen nicht neu
// abgefragt wird
@@ -84,7 +95,18 @@ public class AnsprechpartnerListeController
ansprechpartnerNachnameTableColumn
.setCellFactory(TextFieldTableCell.forTableColumn());
ansprechpartnerNachnameTableColumn.setOnEditCommit((data) -> {
- data.getRowValue().setNachname(data.getNewValue().trim());
+ 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());
+ }
+ }
// Hack, aktualisiert TableView, da Observable beim setzen nicht neu
// abgefragt wird
@@ -93,14 +115,26 @@ public class AnsprechpartnerListeController
});
organisationsNameTableColumn.setCellValueFactory((data) -> {
- data.getValue().getOrganisation().nameProperty()
- .addListener((listener) -> {
- // Hack, aktualisiert TableView, da Organisation kein Observable
+ data.getValue().organisationProperty().addListener((listener) -> {
+ // Hack, aktualisiert TableView, da Organisation kein
+ // Observable
// ist
organisationsNameTableColumn.setVisible(false);
organisationsNameTableColumn.setVisible(true);
});
- return new SimpleObjectProperty<>(data.getValue().getOrganisation());
+ 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());
});
organisationsNameTableColumn.setOnEditCommit((data) -> {
data.getRowValue().setOrganisation(data.getNewValue());
@@ -151,7 +185,10 @@ public class AnsprechpartnerListeController
{
Organisation organisation = new Organisation();
organisation.setName(result.get().trim());
- main.getOrganisation().add(organisation);
+ if (!main.getOrganisation().contains(organisation))
+ {
+ main.getOrganisation().add(organisation);
+ }
}
}
@@ -174,7 +211,12 @@ public class AnsprechpartnerListeController
Optional<String> result = dialog.showAndWait();
if (result.isPresent() && !result.get().trim().isEmpty())
{
- organisation.setName(result.get().trim());
+ Organisation tmpOrg = new Organisation();
+ tmpOrg.setName(result.get().trim());
+ if (!main.getOrganisation().contains(tmpOrg))
+ {
+ organisation.setName(tmpOrg.getName());
+ }
}
}
@@ -206,8 +248,14 @@ public class AnsprechpartnerListeController
if (result == null || result.get() == ButtonType.OK)
{
- main.getAnsprechpartner()
- .removeAll(selectedItem.getAnsprechpartner());
+ Ansprechpartner[] ansArray = selectedItem.getAnsprechpartner()
+ .toArray(new Ansprechpartner[selectedItem
+ .getAnsprechpartner().size()]);
+ for (Ansprechpartner ans : ansArray)
+ {
+ ans.setOrganisation(null);
+ }
+
main.getOrganisation().remove(organisationComboBox.getValue());
}
}
@@ -225,7 +273,7 @@ public class AnsprechpartnerListeController
if (selectedItem != null)
{
- selectedItem.getOrganisation().removeAnsprechpartner(selectedItem);
+ selectedItem.setOrganisation(null);
main.getAnsprechpartner().remove(selectedItem);
}
}
@@ -256,7 +304,10 @@ public class AnsprechpartnerListeController
ansprechpartner.setVorname(result.get().getKey().trim());
ansprechpartner.setNachname(result.get().getValue().trim());
- main.getAnsprechpartner().add(ansprechpartner);
+ if (!main.getAnsprechpartner().contains(ansprechpartner))
+ {
+ main.getAnsprechpartner().add(ansprechpartner);
+ }
}
}
}