From ea3a08d8140255273b44f78d3df931a9ee81e020 Mon Sep 17 00:00:00 2001 From: Mateusz Kowalczyk Date: Mon, 27 Jan 2020 21:29:01 +0100 Subject: [PATCH] move imagesContainer to own scene --- .../ffm/app/WorkspaceService.java | 20 +++++++--- .../ffm/view/StageController.java | 4 ++ .../view/workspace/MainPageController.java | 27 ++++++++------ .../view/workspace/elements/ElementsEnum.java | 15 ++++++++ .../elements/ImageContainerController.java | 35 ++++++++++++++++++ src/main/resources/icons/face.png | Bin 0 -> 280 bytes .../workspace/elements/image_container.fxml | 6 +++ .../templates/workspace/main_page.fxml | 16 +++++--- 8 files changed, 100 insertions(+), 23 deletions(-) create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ElementsEnum.java create mode 100644 src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ImageContainerController.java create mode 100755 src/main/resources/icons/face.png create mode 100644 src/main/resources/templates/workspace/elements/image_container.fxml diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/app/WorkspaceService.java b/src/main/java/dev/mateuszkowalczyk/ffm/app/WorkspaceService.java index 6a9b7cd..32567d6 100644 --- a/src/main/java/dev/mateuszkowalczyk/ffm/app/WorkspaceService.java +++ b/src/main/java/dev/mateuszkowalczyk/ffm/app/WorkspaceService.java @@ -3,6 +3,7 @@ package dev.mateuszkowalczyk.ffm.app; import dev.mateuszkowalczyk.ffm.app.cache.CacheService; import dev.mateuszkowalczyk.ffm.data.DatabaseService; import dev.mateuszkowalczyk.ffm.view.workspace.MainPageController; +import dev.mateuszkowalczyk.ffm.view.workspace.elements.ImageContainerController; import javafx.application.Platform; import javafx.scene.image.ImageView; @@ -11,6 +12,7 @@ public class WorkspaceService { private DatabaseService databaseService; private CacheService cacheService; private MainPageController mainPageController; + private ImageContainerController imagesContainerController; private WorkspaceService() { this.cacheService = CacheService.getInstance(); @@ -29,13 +31,21 @@ public class WorkspaceService { this.mainPageController = mainPageController; } - public void refreshWorkspace() { - Platform.runLater(() -> {this.getMainPageController().clearImages();}); - var t = new Thread(new WorkspaceWrapper()); - t.start(); + public void loadImages() { + if (imagesContainerController != null) { + Platform.runLater(() -> {this.imagesContainerController.clearImages();}); + var t = new Thread(new WorkspaceWrapper()); + t.start(); + } else { + System.out.println("Cannot load images if imagesContainerController isn't exists"); + } } public void addImage(ImageView element) { - Platform.runLater(() -> this.mainPageController.addImage(element)); + Platform.runLater(() -> this.imagesContainerController.addImage(element)); + } + + public void setImagesContainerController(ImageContainerController imageContainerController) { + this.imagesContainerController = imageContainerController; } } diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/StageController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/StageController.java index a59ddac..f39742a 100644 --- a/src/main/java/dev/mateuszkowalczyk/ffm/view/StageController.java +++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/StageController.java @@ -16,6 +16,10 @@ public class StageController { private PropertiesLoader propertiesLoader = PropertiesLoader.getInstance(); private Stage stage; + public enum elements { + + } + private StageController() { } 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 9f62787..71c2916 100644 --- a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/MainPageController.java +++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/MainPageController.java @@ -1,11 +1,16 @@ 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.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; import java.util.ResourceBundle; @@ -13,25 +18,23 @@ public class MainPageController implements Initializable { private WorkspaceService workspaceService; @FXML - private FlowPane imagesContainer; + private ScrollPane mainContainer; public MainPageController() { this.workspaceService = WorkspaceService.getInstance(); this.workspaceService.setMainPageController(this); } - public void clearImages() { - if (this.imagesContainer != null) { - this.imagesContainer.getChildren().clear(); - } - } - - public void addImage(ImageView imageView) { - this.imagesContainer.getChildren().add(imageView); - } - @Override public void initialize(URL url, ResourceBundle resourceBundle) { - this.workspaceService.refreshWorkspace(); + this.setElement(ElementsEnum.ImagesContainer); + } + + public void setElement(ElementsEnum element) { + try { + this.mainContainer.setContent(FXMLLoader.load(ResourceLoader.getInstance().getResource(element.getPath()))); + } catch (IOException e) { + e.printStackTrace(); + } } } 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 new file mode 100644 index 0000000..fef8834 --- /dev/null +++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ElementsEnum.java @@ -0,0 +1,15 @@ +package dev.mateuszkowalczyk.ffm.view.workspace.elements; + +public enum ElementsEnum { + ImagesContainer("templates/workspace/elements/image_container.fxml"); + + private String path; + + ElementsEnum(String path) { + this.path = path; + } + + public String getPath() { + return this.path; + } +} diff --git a/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ImageContainerController.java b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ImageContainerController.java new file mode 100644 index 0000000..9ead15f --- /dev/null +++ b/src/main/java/dev/mateuszkowalczyk/ffm/view/workspace/elements/ImageContainerController.java @@ -0,0 +1,35 @@ +package dev.mateuszkowalczyk.ffm.view.workspace.elements; + +import dev.mateuszkowalczyk.ffm.app.WorkspaceService; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.image.ImageView; +import javafx.scene.layout.FlowPane; + +import java.net.URL; +import java.util.ResourceBundle; + +public class ImageContainerController implements Initializable { + private WorkspaceService workspaceService = WorkspaceService.getInstance(); + + @FXML + private FlowPane imagesContainer; + + public ImageContainerController() { } + + @Override + public void initialize(URL url, ResourceBundle resourceBundle) { + workspaceService.setImagesContainerController(this); + workspaceService.loadImages(); + } + + public void clearImages() { + if (this.imagesContainer != null) { + this.imagesContainer.getChildren().clear(); + } + } + + public void addImage(ImageView imageView) { + this.imagesContainer.getChildren().add(imageView); + } +} diff --git a/src/main/resources/icons/face.png b/src/main/resources/icons/face.png new file mode 100755 index 0000000000000000000000000000000000000000..d31881aceaf91d488a0ef28878304e4773449420 GIT binary patch literal 280 zcmV+z0q6dSP)yEl<5)d1i@2;UA>y^37-02P_= z;{udi`V@al_?;v5sA#Hy?ark;!~;rZNYL_GPB>%k-fmuOpSJ$!ST + + + + + diff --git a/src/main/resources/templates/workspace/main_page.fxml b/src/main/resources/templates/workspace/main_page.fxml index f2afb00..d9b615b 100644 --- a/src/main/resources/templates/workspace/main_page.fxml +++ b/src/main/resources/templates/workspace/main_page.fxml @@ -7,7 +7,6 @@ - @@ -26,6 +25,15 @@ + @@ -33,10 +41,6 @@
- - - - - +