From 3f73cd902d7d0989795f636ab1610c119c5cdb92 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Tue, 28 Jan 2020 22:18:59 +0100 Subject: [PATCH] First version of changed people module --- .../ffm/app/people/PeopleWorkspace.java | 45 +++++++++++++++++++ .../ffm/data/database/person/Person.java | 2 + .../view/workspace/MainPageController.java | 11 ++++- .../view/workspace/elements/ElementsEnum.java | 3 +- .../people/FaceContainerController.java | 9 ++++ .../people/PeopleContainerController.java | 34 ++++++++++++++ .../elements/people/PeopleController.java | 38 ++++++++++++++++ .../elements/people/PersonPaneController.java | 7 +++ .../workspace/elements/face_container.fxml | 6 +++ .../templates/workspace/elements/people.fxml | 6 +++ .../workspace/elements/people_container.fxml | 17 +++++++ .../workspace/elements/person_pane.fxml | 15 +++++++ .../templates/workspace/main_page.fxml | 4 +- 13 files changed, 192 insertions(+), 5 deletions(-) create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/app/people/PeopleWorkspace.java create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/FaceContainerController.java create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleContainerController.java create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PeopleController.java create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/people/PersonPaneController.java create mode 100644 src/main/resources/templates/workspace/elements/face_container.fxml create mode 100644 src/main/resources/templates/workspace/elements/people.fxml create mode 100644 src/main/resources/templates/workspace/elements/people_container.fxml create mode 100644 src/main/resources/templates/workspace/elements/person_pane.fxml 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 @@ + + + + + + + + + + + + + -