package de.fhswf.in.inf.se.projektthemenvergabe.view; import de.fhswf.in.inf.se.projektthemenvergabe.Main; import de.fhswf.in.inf.se.projektthemenvergabe.model.Ansprechpartner; import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt; import de.fhswf.in.inf.se.projektthemenvergabe.model.Student; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; import javafx.stage.Stage; /** * The controller for the FXML-View ProjektHinzufuegen. * * @author Dina-Marie Hanxleden & Stefan Suhren * @version 1.0 */ public class ProjektHinzufuegenController { @FXML private TextField projektthemaTextField; @FXML private TextArea projektskizzeTextField; @FXML private TextArea projekthintergrundTextField; @FXML private TextArea projektinhalteTextField; @FXML private ComboBox ansprechpartnerComboBox; @FXML private ComboBox student1ComboBox; @FXML private ComboBox student2ComboBox; @FXML private ComboBox student3ComboBox; @FXML private TextArea dozentenkommentar; @FXML private Button saveButton; private Projekt projekt; private Stage projekthinzufuegenStage; private boolean wasAborted = true; /** * * Set back reference of the Main. * * @param main * @param projekt */ public void setMain(Main main, Projekt projekt) { this.projekt = projekt; projekthinzufuegenStage = main.getProjekthinzufuegenStage(); ansprechpartnerComboBox.setItems(main.getAnsprechpartner()); student1ComboBox.setItems(main.getStudenten()); student2ComboBox.setItems(main.getStudenten()); student3ComboBox.setItems(main.getStudenten()); // It's art saveButton.disableProperty().bind(projektthemaTextField.textProperty() .isEmpty() .or(projektskizzeTextField.textProperty().isEmpty() .or(projekthintergrundTextField.textProperty().isEmpty() .or(projektinhalteTextField.textProperty().isEmpty() .or(ansprechpartnerComboBox.valueProperty() .isNull() .or(student1ComboBox.valueProperty() .isNull() .and(student2ComboBox .valueProperty().isNull() .and(student3ComboBox .valueProperty() .isNull())))))))); if (projekt != null) { if (!projekt.getStatus().equals(Projekt.StatusTypes.IN_BEARBEITUNG) && !projekt.getStatus() .equals(Projekt.StatusTypes.IN_UEBERARBEITUNG)) { main.getProjekthinzufuegenStage().setTitle("Projekt anzeigen"); projekthintergrundTextField.setEditable(false); projektinhalteTextField.setEditable(false); projektskizzeTextField.setEditable(false); projektthemaTextField.setEditable(false); saveButton.disableProperty().unbind(); } else { main.getProjekthinzufuegenStage().setTitle("Projekt bearbeiten"); } ansprechpartnerComboBox.setDisable(!projekt.getStatus() .equals(Projekt.StatusTypes.IN_BEARBEITUNG)); student1ComboBox.setDisable(!projekt.getStatus() .equals(Projekt.StatusTypes.IN_BEARBEITUNG)); student2ComboBox.setDisable(!projekt.getStatus() .equals(Projekt.StatusTypes.IN_BEARBEITUNG)); student3ComboBox.setDisable(!projekt.getStatus() .equals(Projekt.StatusTypes.IN_BEARBEITUNG)); projektthemaTextField.setText(projekt.getProjektthema()); projektskizzeTextField.setText(projekt.getSkizze()); projekthintergrundTextField .setText(projekt.getProjektbeschreibung()); projektinhalteTextField.setText(projekt.getProjekteinhalte()); ansprechpartnerComboBox.setValue(projekt.getAnsprechpartner()); if (projekt.getStudents().size() > 0) { student1ComboBox.setValue(projekt.getStudents().get(0)); } if (projekt.getStudents().size() > 1) { student2ComboBox.setValue(projekt.getStudents().get(1)); } if (projekt.getStudents().size() > 2) { student3ComboBox.setValue(projekt.getStudents().get(2)); } dozentenkommentar.setText(projekt.getDozentenkommentar()); } else { main.getProjekthinzufuegenStage().setTitle("Projekt anlegen"); } } /** * * Getter for the projekt. * * @return Returns the projekt */ public Projekt getProjekt() { if (wasAborted) { return null; } return projekt; } /** * * Set the Text of the Fields from the stage into the TableView and close * the projekthinzufuegen stage. * */ @FXML private void handleSave() { if (projekt == null) { projekt = new Projekt(projektthemaTextField.getText().trim(), student1ComboBox.getValue(), student2ComboBox.getValue(), student3ComboBox.getValue(), ansprechpartnerComboBox.getValue()); } else { projekt.setProjektthema(projektthemaTextField.getText().trim()); } projekt.setSkizze(projektskizzeTextField.getText().trim()); projekt.setProjektbeschreibung( projekthintergrundTextField.getText().trim()); projekt.setProjekteinhalte(projektinhalteTextField.getText().trim()); wasAborted = false; projekthinzufuegenStage.close(); } /** * * Cancel the projekthinzufuegen stage. * */ @FXML private void handleCancel() { projekthinzufuegenStage.close(); } }