FFM-Friend_Face_Matching/src/main/java/dev/mateuszkowalczyk/ffm/app/face/FaceWorkspace.java

49 lines
2.0 KiB
Java

package dev.mateuszkowalczyk.ffm.app.face;
import dev.mateuszkowalczyk.ffm.app.exception.NotFoundException;
import dev.mateuszkowalczyk.ffm.data.database.face.Face;
import dev.mateuszkowalczyk.ffm.data.database.face.FaceDAO;
import dev.mateuszkowalczyk.ffm.data.database.person.Person;
import dev.mateuszkowalczyk.ffm.data.database.person.PersonDAO;
import dev.mateuszkowalczyk.ffm.utils.ResourceLoader;
import dev.mateuszkowalczyk.ffm.view.workspace.MainPageController;
import dev.mateuszkowalczyk.ffm.view.workspace.elements.ElementsEnum;
import dev.mateuszkowalczyk.ffm.view.workspace.elements.FaceContainerController;
import dev.mateuszkowalczyk.ffm.view.workspace.elements.FacePaneController;
import javafx.fxml.FXMLLoader;
import java.io.IOException;
import java.util.List;
public class FaceWorkspace {
private static FaceWorkspace instance = new FaceWorkspace();
public static FaceWorkspace getInstance() {
return instance;
}
public void loadFacesForPerson(MainPageController mainPageController, FaceContainerController faceContainerController, Person person) throws NotFoundException {
List<Face> faceList = FaceDAO.getInstance().getAllForPerson(person);
List<Person> personList = PersonDAO.getInstance().getAll(true);
var resourceLoader = ResourceLoader.getInstance();
if (faceList.size() == 0) {
throw new NotFoundException();
}
for (Face face : faceList) {
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(resourceLoader.getResource("templates/workspace/elements/face_pane.fxml"));
var controller = new FacePaneController(mainPageController, faceContainerController, face);
controller.setPersonList(personList);
fxmlLoader.setController(controller);
try {
faceContainerController.addFacePane(fxmlLoader.load());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}