diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/app/people/PeopleWorkspace.java b/src/main/java/dev/mateuszkowalczyk/ffm/app/people/PeopleWorkspace.java
new file mode 100644
index 0000000..1e56485
--- /dev/null
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/app/people/PeopleWorkspace.java
@@ -0,0 +1,45 @@
+package dev.mateuszkowalczyk.ffm.app.people;
+
+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.elements.people.PeopleContainerController;
+import dev.mateuszkowalczyk.ffm.view.workspace.elements.people.PeopleController;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Node;
+
+import java.io.IOException;
+
+public class PeopleWorkspace {
+ private static PeopleWorkspace instance = new PeopleWorkspace();
+ private PeopleContainerController peopleContainerController;
+
+ private PeopleWorkspace () {}
+
+ public static PeopleWorkspace getInstance() {
+ return instance;
+ }
+
+
+ public void setPeopleContainerController(PeopleContainerController peopleContainerController) {
+ this.peopleContainerController = peopleContainerController;
+ }
+
+ public void loadPeople() {
+ if (peopleContainerController != null) {
+ var list = PersonDAO.getInstance().getAll();
+ int i = 1;
+
+ for (Person person : list) {
+ Node node = null;
+ try {
+ node = FXMLLoader.load(ResourceLoader.getInstance().getResource("templates/workspace/elements/person_pane.fxml"));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ this.peopleContainerController.addPerson(node, i++);
+ }
+ }
+ }
+}
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/data/database/person/Person.java b/src/main/java/dev/mateuszkowalczyk/ffm/data/database/person/Person.java
index 4e8ec0e..398f4dd 100644
--- a/src/main/java/dev/mateuszkowalczyk/ffm/data/database/person/Person.java
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/data/database/person/Person.java
@@ -2,11 +2,13 @@ package dev.mateuszkowalczyk.ffm.data.database.person;
import dev.mateuszkowalczyk.ffm.data.database.annotation.Column;
import dev.mateuszkowalczyk.ffm.data.database.annotation.PrimaryKey;
+import dev.mateuszkowalczyk.ffm.data.database.annotation.Table;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.UUID;
+@Table
public class Person {
@PrimaryKey
@Column(type = Column.Type.INT)
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/MainPageController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/MainPageController.java
index 71c2916..0dc4d4d 100644
--- a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/MainPageController.java
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/MainPageController.java
@@ -3,12 +3,11 @@ package dev.mateuszkowalczyk.ffm.view.workspace;
import dev.mateuszkowalczyk.ffm.app.WorkspaceService;
import dev.mateuszkowalczyk.ffm.utils.ResourceLoader;
import dev.mateuszkowalczyk.ffm.view.workspace.elements.ElementsEnum;
+import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.control.ScrollPane;
-import javafx.scene.image.ImageView;
-import javafx.scene.layout.FlowPane;
import java.io.IOException;
import java.net.URL;
@@ -37,4 +36,12 @@ public class MainPageController implements Initializable {
e.printStackTrace();
}
}
+
+ public void openImageContainer(ActionEvent actionEvent) {
+ this.setElement(ElementsEnum.ImagesContainer);
+ }
+
+ public void openPeopleModule(ActionEvent actionEvent) {
+ this.setElement(ElementsEnum.People);
+ }
}
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ElementsEnum.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ElementsEnum.java
index fef8834..b6ed871 100644
--- a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ElementsEnum.java
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ElementsEnum.java
@@ -1,7 +1,8 @@
package dev.mateuszkowalczyk.ffm.view.workspace.elements;
public enum ElementsEnum {
- ImagesContainer("templates/workspace/elements/image_container.fxml");
+ ImagesContainer("templates/workspace/elements/image_container.fxml"),
+ People("templates/workspace/elements/people.fxml");
private String path;
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/FaceContainerController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/FaceContainerController.java
new file mode 100644
index 0000000..957e1fe
--- /dev/null
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/FaceContainerController.java
@@ -0,0 +1,9 @@
+package dev.mateuszkowalczyk.ffm.view.workspace.elements.people;
+
+import dev.mateuszkowalczyk.ffm.data.database.person.Person;
+
+public class FaceContainerController {
+ public FaceContainerController(Person person) {
+ System.out.println("read face container");
+ }
+}
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleContainerController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleContainerController.java
new file mode 100644
index 0000000..f9f3e85
--- /dev/null
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleContainerController.java
@@ -0,0 +1,34 @@
+package dev.mateuszkowalczyk.ffm.view.workspace.elements.people;
+
+import dev.mateuszkowalczyk.ffm.app.WorkspaceService;
+import dev.mateuszkowalczyk.ffm.app.people.PeopleWorkspace;
+import dev.mateuszkowalczyk.ffm.data.database.person.Person;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.Node;
+import javafx.scene.layout.FlowPane;
+import javafx.scene.layout.GridPane;
+
+import java.net.URL;
+import java.util.ResourceBundle;
+
+public class PeopleContainerController implements Initializable {
+ private PeopleWorkspace peopleWorkspace = PeopleWorkspace.getInstance();
+
+ @FXML
+ public GridPane peopleContainer;
+
+ public PeopleContainerController() {
+ System.out.println("people container");;
+ }
+
+ public void addPerson(Node node, int i) {
+ this.peopleContainer.getChildren().add(i, node);
+ }
+
+ @Override
+ public void initialize(URL url, ResourceBundle resourceBundle) {
+ this.peopleWorkspace.setPeopleContainerController(this);
+ this.peopleWorkspace.loadPeople();
+ }
+}
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleController.java
new file mode 100644
index 0000000..92ef2f8
--- /dev/null
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleController.java
@@ -0,0 +1,38 @@
+package dev.mateuszkowalczyk.ffm.view.workspace.elements.people;
+
+import dev.mateuszkowalczyk.ffm.utils.ResourceLoader;
+import dev.mateuszkowalczyk.ffm.view.workspace.elements.ElementsEnum;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
+import javafx.scene.layout.BorderPane;
+import jdk.swing.interop.LightweightFrameWrapper;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+
+public class PeopleController implements Initializable {
+ private static String FACE_CONTAINER = "templates/workspace/elements/face_container.fxml";
+ private static String PEOPLE_CONTAINER = "templates/workspace/elements/people_container.fxml";
+
+ @FXML
+ private BorderPane mainContainer;
+
+ public PeopleController() {
+ System.out.println("People controller");
+ }
+
+ @Override
+ public void initialize(URL url, ResourceBundle resourceBundle) {
+ this.setCenterElement(PEOPLE_CONTAINER);
+ }
+
+ public void setCenterElement(String element) {
+ try {
+ this.mainContainer.setCenter(FXMLLoader.load(ResourceLoader.getInstance().getResource(element)));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PersonPaneController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PersonPaneController.java
new file mode 100644
index 0000000..8460690
--- /dev/null
+++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PersonPaneController.java
@@ -0,0 +1,7 @@
+package dev.mateuszkowalczyk.ffm.view.workspace.elements.people;
+
+public class PersonPaneController {
+ public PersonPaneController () {
+ System.out.println("Hi person");
+ }
+}
diff --git a/src/main/resources/templates/workspace/elements/face_container.fxml b/src/main/resources/templates/workspace/elements/face_container.fxml
new file mode 100644
index 0000000..2d205d1
--- /dev/null
+++ b/src/main/resources/templates/workspace/elements/face_container.fxml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/main/resources/templates/workspace/elements/people.fxml b/src/main/resources/templates/workspace/elements/people.fxml
new file mode 100644
index 0000000..5b22730
--- /dev/null
+++ b/src/main/resources/templates/workspace/elements/people.fxml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/main/resources/templates/workspace/elements/people_container.fxml b/src/main/resources/templates/workspace/elements/people_container.fxml
new file mode 100644
index 0000000..9273446
--- /dev/null
+++ b/src/main/resources/templates/workspace/elements/people_container.fxml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/templates/workspace/elements/person_pane.fxml b/src/main/resources/templates/workspace/elements/person_pane.fxml
new file mode 100644
index 0000000..a711862
--- /dev/null
+++ b/src/main/resources/templates/workspace/elements/person_pane.fxml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/templates/workspace/main_page.fxml b/src/main/resources/templates/workspace/main_page.fxml
index d9b615b..1d1daa7 100644
--- a/src/main/resources/templates/workspace/main_page.fxml
+++ b/src/main/resources/templates/workspace/main_page.fxml
@@ -13,7 +13,7 @@
-