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

44 lines
1.7 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.utils.ResourceLoader;
import dev.mateuszkowalczyk.ffm.view.workspace.MainPageController;
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);
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"));
fxmlLoader.setController(new FacePaneController(mainPageController, faceContainerController, face));
try {
faceContainerController.addFacePane(fxmlLoader.load());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}