FFM-Friend_Face_Matching/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/FaceContainerController.java

64 lines
2.0 KiB
Java

package dev.mateuszkowalczyk.ffm.view.workspace.elements;
import dev.mateuszkowalczyk.ffm.app.exception.NotFoundException;
import dev.mateuszkowalczyk.ffm.app.face.FaceWorkspace;
import dev.mateuszkowalczyk.ffm.data.database.person.Person;
import dev.mateuszkowalczyk.ffm.data.database.person.PersonDAO;
import dev.mateuszkowalczyk.ffm.view.workspace.MainPageController;
import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.TextField;
import javafx.scene.layout.FlowPane;
import java.net.URL;
import java.util.ResourceBundle;
public class FaceContainerController implements Initializable {
private MainPageController mainPageController;
private Person person;
@FXML
private FlowPane facesContainer;
@FXML
private TextField personName;
public FaceContainerController(MainPageController mainPageController, Person person) {
this.mainPageController = mainPageController;
this.person = person;
System.out.println("read face container");
}
public void addFacePane(Node node) {
this.facesContainer.getChildren().add(node);
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
this.refresh();
this.personName.setText(person.getName());
}
public void updatePersonName(Event event) {
this.person.setName(this.personName.getText());
PersonDAO.getInstance().update(person);
}
public void showPhotosForPerson(Event event) {
this.mainPageController.showPhotosForPerson(this.person);
}
public void refresh() {
this.facesContainer.getChildren().clear();
try {
FaceWorkspace.getInstance().loadFacesForPerson(mainPageController, this, person);
} catch (NotFoundException e) {
PersonDAO.getInstance().delete(person);
this.mainPageController.setElement(ElementsEnum.PeopleContainer);
}
}
}