From 0070014268e8a99f6d64566f8232798e68819bb0 Mon Sep 17 00:00:00 2001
From: jez04 <david.jezek@post.cz>
Date: Wed, 6 Nov 2024 22:11:52 +0100
Subject: [PATCH] feat: :tada: solution

---
 src/main/java/lab/App.java                    |  44 ++++--
 src/main/java/lab/Difficult.java              |  16 +++
 src/main/java/lab/DrawingThread.java          |  14 +-
 src/main/java/lab/GameController.java         |  50 ++++---
 src/main/java/lab/MainScreenController.java   |  53 +++++++
 src/main/java/lab/Scene.java                  |   4 +-
 src/main/resources/lab/application.css        |  63 ++++++++-
 src/main/resources/lab/gameWindow.fxml        |   8 +-
 .../resources/lab/lochness-background.jpg     | Bin 0 -> 48183 bytes
 src/main/resources/lab/mainScreen.fxml        |  52 +++++++
 .../structure/test/ClassStructureTest.java    | 133 ++++++++++++------
 11 files changed, 348 insertions(+), 89 deletions(-)
 create mode 100644 src/main/java/lab/Difficult.java
 create mode 100644 src/main/java/lab/MainScreenController.java
 create mode 100644 src/main/resources/lab/lochness-background.jpg
 create mode 100644 src/main/resources/lab/mainScreen.fxml

diff --git a/src/main/java/lab/App.java b/src/main/java/lab/App.java
index 7c60166..9a2c2db 100644
--- a/src/main/java/lab/App.java
+++ b/src/main/java/lab/App.java
@@ -1,5 +1,8 @@
 package lab;
 
+import java.io.IOException;
+import java.net.URL;
+
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -16,6 +19,9 @@ import javafx.stage.WindowEvent;
 public class App extends Application {
 
 	private GameController gameController;
+	
+	private Stage primaryStage;
+	
 	public static void main(String[] args) {
 		launch(args);
 	}
@@ -23,15 +29,8 @@ public class App extends Application {
 	@Override
 	public void start(Stage primaryStage) {
 		try {
-			System.out.println(getClass().getResource("/lab/LochNess.gif"));
-			// Construct a main window with a canvas.
-			FXMLLoader gameLoader = new FXMLLoader(getClass().getResource("/lab/gameWindow.fxml"));
-			Parent root = gameLoader.load();
-			GameController gameController = gameLoader.getController();
-			Scene scene = new Scene(root);
-			String css = this.getClass().getResource("/lab/application.css").toExternalForm(); 
-			scene.getStylesheets().add(css);
-			primaryStage.setScene(scene);
+			this.primaryStage = primaryStage;
+			switchToMenu();
 			primaryStage.resizableProperty().set(false);
 			primaryStage.setTitle("Java 1 - 1th laboratory");
 			primaryStage.show();
@@ -42,9 +41,34 @@ public class App extends Application {
 		}
 	}
 
+	public void switchToGame(String name, int numberOfMonsters) throws IOException {
+		// Construct a main window with a canvas.
+		FXMLLoader gameLoader = new FXMLLoader(getClass().getResource("/lab/gameWindow.fxml"));
+		Parent root = gameLoader.load();
+		gameController = gameLoader.getController();
+		Scene scene = new Scene(root);
+		URL cssUrl = getClass().getResource("application.css");
+		scene.getStylesheets().add(cssUrl.toString());
+		primaryStage.setScene(scene);
+		gameController.startGame(name, numberOfMonsters);
+	}
+	private void switchToMenu() throws IOException {
+		// Construct a main window with a canvas.
+		FXMLLoader menuLoader = new FXMLLoader(getClass().getResource("/lab/mainScreen.fxml"));
+		Parent root = menuLoader.load();
+		MainScreenController menuController = menuLoader.getController();
+		menuController.setApp(this);
+		Scene scene = new Scene(root);
+		URL cssUrl = getClass().getResource("application.css");
+		scene.getStylesheets().add(cssUrl.toString());
+		primaryStage.setScene(scene);
+	}
+
 	@Override
 	public void stop() throws Exception {
-		gameController.stop();
+		if(gameController != null) {
+			gameController.stop();
+		}
 		super.stop();
 	}
 
diff --git a/src/main/java/lab/Difficult.java b/src/main/java/lab/Difficult.java
new file mode 100644
index 0000000..6186f27
--- /dev/null
+++ b/src/main/java/lab/Difficult.java
@@ -0,0 +1,16 @@
+package lab;
+
+public enum Difficult {
+	EASY(2), MEDIUM(5), HARD(10);
+
+	private final int numberOfMonsters;
+
+	private Difficult(int numberOfMonsters) {
+		this.numberOfMonsters = numberOfMonsters;
+	}
+
+	public int getNumberOfMonsters() {
+		return numberOfMonsters;
+	}
+
+}
diff --git a/src/main/java/lab/DrawingThread.java b/src/main/java/lab/DrawingThread.java
index 2131dcd..cf32ffe 100644
--- a/src/main/java/lab/DrawingThread.java
+++ b/src/main/java/lab/DrawingThread.java
@@ -7,7 +7,6 @@ import javafx.scene.paint.Color;
 
 public class DrawingThread extends AnimationTimer {
 
-	private final Canvas canvas;
 	private final GraphicsContext gc;
 	private Scene scene;
 	private int frameCount = 0;
@@ -15,10 +14,9 @@ public class DrawingThread extends AnimationTimer {
 	private long lastTime;
 	private long lastSecond = 0;
 
-	public DrawingThread(Canvas canvas) {
-		this.canvas = canvas;
+	public DrawingThread(Canvas canvas, Scene scene) {
+		this.scene = scene;
 		this.gc = canvas.getGraphicsContext2D();
-		scene = new Scene(canvas.getWidth(), canvas.getHeight());
 		lastTime = System.nanoTime();
 	}
 
@@ -30,6 +28,10 @@ public class DrawingThread extends AnimationTimer {
 		long timeDelta = now - lastTime;
 		scene.draw(gc);
 		scene.simulate(timeDelta);
+		computeAndShowFps(now, timeDelta);
+	}
+
+	private void computeAndShowFps(long now, long timeDelta) {
 		long currentSecond = now / 1_000_000_000;
 		if(lastSecond == currentSecond) {
 			frameCount ++;
@@ -45,8 +47,4 @@ public class DrawingThread extends AnimationTimer {
 		gc.strokeText(Double.toString(1_000_000_000d/timeDelta), 10, 50);
 	}
 
-	public Scene getScene() {
-		return scene;
-	}
-
 }
diff --git a/src/main/java/lab/GameController.java b/src/main/java/lab/GameController.java
index b6c34cd..6d13ce1 100644
--- a/src/main/java/lab/GameController.java
+++ b/src/main/java/lab/GameController.java
@@ -4,54 +4,64 @@ import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
-import javafx.geometry.Point2D;
 import javafx.scene.canvas.Canvas;
+import javafx.scene.control.Label;
 import javafx.scene.control.Slider;
 
 public class GameController {
 
+	private Scene scene;
+
 	@FXML
 	private Slider boatPosition;
 
 	private DrawingThread timer;
 
-    @FXML
-    private Canvas canvas;
+	@FXML
+	private Canvas canvas;
 
-    @FXML
-    private Slider speed;
+	@FXML
+	private Slider speed;
 
-    @FXML
-    void changePosition(ActionEvent event) {
-		timer.getScene().getRock().changePosition();
+	@FXML
+	private Label playerName;
 
-    }
+	@FXML
+	void changePosition(ActionEvent event) {
+		scene.getRock().changePosition();
 
-    @FXML
-    void initialize() {
-        assert boatPosition != null : "fx:id=\"angle\" was not injected: check your FXML file 'gameWindow.fxml'.";
-        assert canvas != null : "fx:id=\"canvas\" was not injected: check your FXML file 'gameWindow.fxml'.";
-        assert speed != null : "fx:id=\"speed\" was not injected: check your FXML file 'gameWindow.fxml'.";
-		timer = new DrawingThread(canvas);
-		timer.start();
+	}
+
+	@FXML
+	void initialize() {
+		assert boatPosition != null : "fx:id=\"angle\" was not injected: check your FXML file 'gameWindow.fxml'.";
+		assert canvas != null : "fx:id=\"canvas\" was not injected: check your FXML file 'gameWindow.fxml'.";
+		assert speed != null : "fx:id=\"speed\" was not injected: check your FXML file 'gameWindow.fxml'.";
 		boatPosition.valueProperty().addListener(new ChangeListener<Number>() {
 			@Override
 			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-				timer.getScene().getBoat().setPosInPercentage(newValue.doubleValue());
+				scene.getBoat().setPosInPercentage(newValue.doubleValue());
 			}
 		});
 		speed.valueProperty().addListener(new ChangeListener<Number>() {
 			@Override
 			public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
-				timer.getScene().getBackground().setSpeed(newValue.doubleValue());
+				scene.getBackground().setSpeed(newValue.doubleValue());
 			}
 		});
 
-    }
+	}
+
+	public void startGame(String name, int numberOfMonsters) {
+		playerName.setText(name);
+		scene = new Scene(canvas.getWidth(), canvas.getHeight(), numberOfMonsters);
+		timer = new DrawingThread(canvas, scene);
+		timer.start();
+
+	}
 
 	public void stop() {
 		timer.stop();
 	}
 
-    
 }
diff --git a/src/main/java/lab/MainScreenController.java b/src/main/java/lab/MainScreenController.java
new file mode 100644
index 0000000..0dec5be
--- /dev/null
+++ b/src/main/java/lab/MainScreenController.java
@@ -0,0 +1,53 @@
+package lab;
+
+import java.io.IOException;
+
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.RadioButton;
+import javafx.scene.control.TextField;
+import javafx.scene.control.ToggleButton;
+import javafx.scene.control.ToggleGroup;
+
+/**
+ * 
+ */
+public class MainScreenController {
+
+	@FXML
+	private ToggleGroup difficult;
+
+    @FXML
+    private ToggleButton easy;
+
+    @FXML
+    private ToggleButton hard;
+
+    @FXML
+    private ToggleButton medium;
+
+    @FXML
+	private TextField name;
+
+	private App app;
+	
+	@FXML
+	void play(ActionEvent event) throws IOException {
+		Difficult dif = (Difficult)difficult.getSelectedToggle().getProperties().get(Difficult.class);
+		app.switchToGame(name.getText(), dif.getNumberOfMonsters());
+	}
+	
+	public void setApp(App app) {
+		this.app = app;
+	}
+
+	@FXML
+	void initialize() {
+		assert difficult != null : "fx:id=\"difficult\" was not injected: check your FXML file 'mainScreen.fxml'.";
+		assert name != null : "fx:id=\"name\" was not injected: check your FXML file 'mainScreen.fxml'.";
+		easy.getProperties().put(Difficult.class, Difficult.EASY);
+		medium.getProperties().put(Difficult.class, Difficult.MEDIUM);
+		hard.getProperties().put(Difficult.class, Difficult.HARD);
+	}
+
+}
diff --git a/src/main/java/lab/Scene.java b/src/main/java/lab/Scene.java
index 15cfb20..0b45059 100644
--- a/src/main/java/lab/Scene.java
+++ b/src/main/java/lab/Scene.java
@@ -13,9 +13,9 @@ public class Scene {
 	private Rock rock;
 	private Background background;
 
-	public Scene(double width, double height) {
+	public Scene(double width, double height, int numberOfMonsters) {
 		size = new Dimension2D(width, height);
-		sceneEntitites = new DrawableSimulable[8];
+		sceneEntitites = new DrawableSimulable[3+numberOfMonsters];
 		background = new Background(this);
 		rock = new Rock(this, new Point2D(300, 300), new Dimension2D(30, 50));
 		boat = new Boat(this, new Point2D(20, 200));
diff --git a/src/main/resources/lab/application.css b/src/main/resources/lab/application.css
index 6b9fb33..0ef5f16 100644
--- a/src/main/resources/lab/application.css
+++ b/src/main/resources/lab/application.css
@@ -1,6 +1,63 @@
 /* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */
 
-#changeButton {
-	-fx-background-image: url("LochNess.gif");
+Label {
+	-fx-font-size: 20.0px;
+	-fx-padding: 10.0px;
+	-fx-text-fill: white;
+	-fx-font-weight: 900;
+}
+
+#name{
+	-fx-font-weight: 900;
+	-fx-font-size: 20.0px;	
+	-fx-padding: 10.0px;
+	-fx-background-color: RGBA(0.0,0.0,255.0,0.5);	
+	-fx-background-insets:5.0px;
+}
+#panel {
+	-fx-background-image:url("game-background.jpg");
+	-fx-background-size: stretch;
+}
+#gamePanel {
+	-fx-background-color:RGB(0.0,0.0,100.0);
+}
+#menuPanel {
+	-fx-background-image:url("lochness-background.jpg");
+	-fx-background-size: stretch;
+}
+
+#playButton {
+	-fx-background-color: RGBA(0.0,0.0,255.0,0.5);
+}
+#playButton:hover {
+	-fx-background-color: RGBA(0.0,0.0,255.0,0.5);
+	-fx-text-fill: white;
+}
+
+.difficultButton .radio{
+	visibility: hidden;
+}
+.difficultButton .dot{
+	-fx-background-color: red;
+}
+
+.difficultButton {
+	-fx-background-color: RGBA(0.0,0.0,100.0,0.8);
+	-fx-border-color: RGBA(0.0,0.0,100.0,0.8);
+	-fx-border-width:3px;
+	-fx-border-radius:30.0px;
+	-fx-text-fill: white;
+	-fx-font-size: 20.0px;
+	-fx-background-radius:30.0px;
+}
+
+.difficultButton:hover{
+ 	-fx-effect: dropshadow(gaussian, rgba(255, 255, 0, 0.7), 50.0, 0.7, 0.0, 0.0);
+	-fx-background-color : RGBA(50,0,0,0.8);
+}
+
+.difficultButton:selected{
+	-fx-background-color : RGBA(0,0,100,0.9);
+	-fx-border-color:RGBA(255,255,0,0.9);
+}
 
-}
\ No newline at end of file
diff --git a/src/main/resources/lab/gameWindow.fxml b/src/main/resources/lab/gameWindow.fxml
index b6bc9fa..bda0678 100644
--- a/src/main/resources/lab/gameWindow.fxml
+++ b/src/main/resources/lab/gameWindow.fxml
@@ -4,12 +4,13 @@
 <?import javafx.scene.Cursor?>
 <?import javafx.scene.canvas.Canvas?>
 <?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
 <?import javafx.scene.control.Slider?>
 <?import javafx.scene.layout.BorderPane?>
 <?import javafx.scene.layout.HBox?>
 <?import javafx.scene.text.Font?>
 
-<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="459.0" prefWidth="824.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.GameController">
+<BorderPane fx:id="gamePanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="491.0" prefWidth="824.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.GameController">
    <bottom>
       <HBox alignment="TOP_CENTER" prefHeight="66.0" prefWidth="824.0" BorderPane.alignment="CENTER">
          <children>
@@ -32,7 +33,7 @@
       </HBox>
    </bottom>
    <center>
-      <Canvas fx:id="canvas" height="340.0" width="749.0" BorderPane.alignment="CENTER">
+      <Canvas fx:id="canvas" height="376.0" width="777.0" BorderPane.alignment="CENTER">
          <BorderPane.margin>
             <Insets />
          </BorderPane.margin>
@@ -41,4 +42,7 @@
    <left>
       <Slider fx:id="boatPosition" blockIncrement="5.0" majorTickUnit="10.0" max="80.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" min="20.0" minorTickCount="5" orientation="VERTICAL" prefHeight="331.0" prefWidth="38.0" showTickLabels="true" showTickMarks="true" BorderPane.alignment="CENTER" />
    </left>
+   <top>
+      <Label fx:id="playerName" text="Label" BorderPane.alignment="CENTER" />
+   </top>
 </BorderPane>
diff --git a/src/main/resources/lab/lochness-background.jpg b/src/main/resources/lab/lochness-background.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8d142b918c7e96d6587b6496acf8317d4fe4f223
GIT binary patch
literal 48183
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

literal 0
HcmV?d00001

diff --git a/src/main/resources/lab/mainScreen.fxml b/src/main/resources/lab/mainScreen.fxml
new file mode 100644
index 0000000..4f2bc2f
--- /dev/null
+++ b/src/main/resources/lab/mainScreen.fxml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.RadioButton?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.ToggleGroup?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.text.Font?>
+
+<BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.MainScreenController">
+   <top>
+      <HBox prefWidth="200.0" BorderPane.alignment="CENTER">
+         <children>
+            <Label text="Player name:" />
+            <TextField fx:id="name" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" promptText="type  player name like Java Duke" HBox.hgrow="ALWAYS" />
+         </children>
+      </HBox>
+   </top>
+   <bottom>
+      <Button fx:id="playButton" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#play" text="Play" BorderPane.alignment="CENTER">
+         <font>
+            <Font name="System Bold" size="51.0" />
+         </font></Button>
+   </bottom>
+   <center>
+      <HBox prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
+         <children>
+            <RadioButton fx:id="easy" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Easy" HBox.hgrow="ALWAYS">
+               <toggleGroup>
+                  <ToggleGroup fx:id="difficult" />
+               </toggleGroup>
+               <HBox.margin>
+                  <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+               </HBox.margin>
+            </RadioButton>
+            <RadioButton fx:id="medium" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" selected="true" styleClass="difficultButton" text="Medium" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
+               <HBox.margin>
+                  <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+               </HBox.margin>
+            </RadioButton>
+            <RadioButton fx:id="hard" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Hard" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
+               <HBox.margin>
+                  <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+               </HBox.margin>
+            </RadioButton>
+         </children>
+      </HBox>
+   </center>
+</BorderPane>
diff --git a/src/test/java/jez04/structure/test/ClassStructureTest.java b/src/test/java/jez04/structure/test/ClassStructureTest.java
index ff0654d..a2bd575 100644
--- a/src/test/java/jez04/structure/test/ClassStructureTest.java
+++ b/src/test/java/jez04/structure/test/ClassStructureTest.java
@@ -3,10 +3,20 @@ package jez04.structure.test;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
 import java.io.PrintStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.FileVisitResult;
+import java.nio.file.FileVisitor;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -26,20 +36,18 @@ import javafx.fxml.FXML;
 
 class ClassStructureTest {
 
+
 	Set<String> allClasses = getNameOfAllClasses();
 
 	@Test
-	void hasClassWithPropertyWithFxmlAnnotationTest() {
-		Set<String> names = getNameOfAllClasses();
-		long annotationCount = 0;
-		for (String name : names) {
-			Class<?> c = getClass(name);
-			annotationCount += countPropertyWithAnnotation(c, ".*", FXML.class);
-			annotationCount += countMethodWithAnnotation(c, ".*", FXML.class);
+	void printAllclassesTest() {
+		System.out.println("=========================================");
+		System.out.println("All detected classes:");
+		for (String name : allClasses) {
+			System.out.println(name);
 		}
-		assertTrue(annotationCount >= 2, "Only " + annotationCount + " FXML annotation found. Requred atleast 2!");
+		System.out.println("=========================================");
 	}
-	
 	@Test
 	void gameControllerExistenceTest() {
 		classExist("GameController");
@@ -53,6 +61,11 @@ class ClassStructureTest {
 		Class<?> c = getClass("GameController");
 		hasPropertyWithAnnotation(c, ".*", FXML.class);
 	}
+
+	@Test
+	void countControllersTest() {
+		assertTrue(countClassesMatches(".*Controller") > 1, "Only one class named .*Controller found"); 
+	}
 	@Test
 	void gameControllerActionEventTest() {
 		classExist("GameController");
@@ -60,27 +73,18 @@ class ClassStructureTest {
 		hasMethodRegexp(c, ".*", void.class, ActionEvent.class);
 	}
 
-	@Test
-	void backgroundExistenceTest() {
-		classExist("Background");
-	}
-	@Test
-	void backgroundExistenceSetAngleTest() {
-		classExist("Background");
-		Class<?> c = getClass("Background");
-		hasMethod(c, "setSpeed");
-	}
-	@Test
-	void backgroundExistenceSetSpeedTest() {
-		classExist("Background");
-		Class<?> c = getClass("Background");
-		hasMethod(c, "setSpeed");
-	}
-
 
 	private void isInterface(Class<?> c) {
 		assertTrue(c.isInterface(), c.getName() + " have to be interface.");
 	}
+	
+	private long countClassesMatches(String nameRegExp) {
+		return allClasses.stream().filter(c -> c.matches(nameRegExp)).count();
+	}
+	
+	private List<String> getClassesMatches(String nameRegExp) {
+		return allClasses.stream().filter(c -> c.matches(nameRegExp)).toList();
+	}
 
 	private void classExist(String name) {
 		assertTrue(allClasses.stream().anyMatch(c -> c.endsWith(name)), "Interface " + name + " not found");
@@ -131,22 +135,6 @@ class ClassStructureTest {
 				"No field " + propertyNameRegexp + " with annotation " + annotation.getName() + " in class "
 						+ classDef.getName());
 	}
-	private long countPropertyWithAnnotation(Class<?> classDef, String propertyNameRegexp, Class<?> annotation) {
-		List<Field> fields = Arrays.asList(classDef.getDeclaredFields());
-		long propeertyFxmlAnnotationCount = fields.stream().filter(f -> f.getName().matches(propertyNameRegexp))
-						.flatMap(f -> Arrays.asList(
-								f.getAnnotations()).stream()).map(a -> a.annotationType()).filter(a -> 
-								a.equals(annotation)).count();
-		return propeertyFxmlAnnotationCount;
-	}
-	private long countMethodWithAnnotation(Class<?> classDef, String propertyNameRegexp, Class<?> annotation) {
-		List<Method> methods = Arrays.asList(classDef.getDeclaredMethods());
-		long methodFxmlAnnotationCount = methods.stream().filter(f -> f.getName().matches(propertyNameRegexp))
-						.flatMap(m -> Arrays.asList(
-								m.getAnnotations()).stream()).map(a -> a.annotationType()).filter(a -> 
-								a.equals(annotation)).count();
-		return methodFxmlAnnotationCount; 
-	}
 
 	private void hasMethod(Class<?> interfaceDef, String methodName, Class<?> returnType) {
 		List<Method> methods = Arrays.asList(interfaceDef.getDeclaredMethods());
@@ -212,10 +200,13 @@ class ClassStructureTest {
 	}
 
 	private Set<String> getNameOfAllClasses() {
-		List<String> initClassesName = Arrays.asList("lab.Routines", "lab.App", "lab.DrawingThread");
+		List<String> initClassesName = new ArrayList<>();
+		dynamicaliFoundSomeClass(initClassesName);
+		initClassesName.addAll(List.of("lab.Routines", "lab.App", "lab.DrawingThread"));
 		for (String className : initClassesName) {
 			try {
 				Class.forName(className);
+				break;
 			} catch (ClassNotFoundException e) {
 				System.out.println(String.format("Class '%s' cannot be loaded: %s", className, e.getMessage()));
 			}
@@ -228,13 +219,67 @@ class ClassStructureTest {
 					|| p.getName().startsWith("javassist")) {
 				continue;
 			}
+			System.out.println(p.getName());
 			Configuration conf = new ConfigurationBuilder().addScanners(Scanners.SubTypes.filterResultsBy(pc -> true))
 					.forPackages(p.getName());
 			Reflections reflections = new Reflections(conf);
 			allClasses.addAll(reflections.getAll(Scanners.SubTypes.filterResultsBy(c -> {
+				System.out.println(c);
 				return true;
 			})));
 		}
+		for (String string : allClasses) {
+			System.out.println(string);
+		}
 		return allClasses;
 	}
-}
\ No newline at end of file
+	private void dynamicaliFoundSomeClass(List<String> initClassesName) {
+		URL myClassUrl = ClassStructureTest.class.getResource("ClassStructureTest.class");
+		myClassUrl.getFile();
+		try {
+			Path classRoot = Paths.get(myClassUrl.toURI()).getParent().getParent().getParent().getParent();
+			if("test-classes".equals(classRoot.getFileName().toString())) {
+				classRoot = classRoot.getParent().resolve("classes"); 
+			}
+			System.out.println("class root: " + classRoot);
+			final Path classRootFinal = classRoot;
+			Files.walkFileTree(classRoot, new FileVisitor<Path>() {
+
+				@Override
+				public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
+					if(List.of("jez04", "META-INF").contains(dir.getFileName().toString())) {
+						return FileVisitResult.SKIP_SUBTREE;
+					}
+					return FileVisitResult.CONTINUE;
+				}
+
+				@Override
+				public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+					System.out.println("VISIT: " + file);
+					if("module-info.class".equals(file.getFileName().toString())) {
+						return FileVisitResult.CONTINUE;
+					}
+					if(!file.getFileName().toString().endsWith(".class")) {
+						return FileVisitResult.CONTINUE;
+					}
+					String foundClassName = classRootFinal.relativize(file).toString(); 
+					foundClassName = foundClassName.substring(0, foundClassName.length()-6).replace(File.separatorChar, '.');
+					initClassesName.add(foundClassName);
+					return FileVisitResult.TERMINATE;
+				}
+
+				@Override
+				public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
+					return FileVisitResult.CONTINUE;
+				}
+
+				@Override
+				public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
+					return FileVisitResult.CONTINUE;
+				}
+			});
+		} catch (URISyntaxException | IOException e) {
+			e.printStackTrace();
+		}
+	}
+}
-- 
GitLab