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 0000000..d31881a Binary files /dev/null and b/src/main/resources/icons/face.png differ diff --git a/src/main/resources/templates/workspace/elements/image_container.fxml b/src/main/resources/templates/workspace/elements/image_container.fxml new file mode 100644 index 0000000..ec076da --- /dev/null +++ b/src/main/resources/templates/workspace/elements/image_container.fxml @@ -0,0 +1,6 @@ + + + + + + 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 @@
- - - - - +