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 @@
-
-
-
-
-
+