From 2708b5840a84e777cd0f99c3dbe5481ee0314de5 Mon Sep 17 00:00:00 2001
From: jez04 <david.jezek@post.cz>
Date: Mon, 28 Apr 2025 02:00:17 +0200
Subject: [PATCH] feat: :tada: solution

---
 scores.csv                                    |   1 +
 src/main/java/lab/MyEdit.java                 |  13 +++
 src/main/java/lab/data/Score.java             |  10 ++-
 src/main/java/lab/gui/EditController.java     |  80 +++++++++++++++++-
 src/main/resources/lab/gui/application.css    |   2 +-
 .../resources/lab/gui/game-background.jpg     | Bin 0 -> 38592 bytes
 src/main/resources/msg.properties             |   5 ++
 src/main/resources/msg_cs.properties          |   5 ++
 src/main/resources/msg_cs_CZ.properties       |   4 +
 src/main/resources/msg_en.properties          |   6 ++
 .../structure/test/ClassStructureTest.java    |  43 ++++------
 11 files changed, 138 insertions(+), 31 deletions(-)
 create mode 100644 src/main/java/lab/MyEdit.java
 create mode 100644 src/main/resources/lab/gui/game-background.jpg
 create mode 100644 src/main/resources/msg.properties
 create mode 100644 src/main/resources/msg_cs.properties
 create mode 100644 src/main/resources/msg_cs_CZ.properties
 create mode 100644 src/main/resources/msg_en.properties

diff --git a/scores.csv b/scores.csv
index 71c59b0..04008fa 100644
--- a/scores.csv
+++ b/scores.csv
@@ -1,3 +1,4 @@
 BugBuster;264;EASY
 ClusterChampion;127;MEDIUM
 BugBuster;264;EASY
+BugBuster;2640000;HARD
diff --git a/src/main/java/lab/MyEdit.java b/src/main/java/lab/MyEdit.java
new file mode 100644
index 0000000..07b46a5
--- /dev/null
+++ b/src/main/java/lab/MyEdit.java
@@ -0,0 +1,13 @@
+package lab;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface MyEdit {
+    public boolean readOnly() default false;
+    public boolean visible() default true;
+}
diff --git a/src/main/java/lab/data/Score.java b/src/main/java/lab/data/Score.java
index 2be7983..c4b003b 100644
--- a/src/main/java/lab/data/Score.java
+++ b/src/main/java/lab/data/Score.java
@@ -8,6 +8,7 @@ import jakarta.persistence.Enumerated;
 import jakarta.persistence.GeneratedValue;
 import jakarta.persistence.GenerationType;
 import jakarta.persistence.Id;
+import lab.MyEdit;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.EqualsAndHashCode;
@@ -30,13 +31,20 @@ public class Score {
 	
 	@Id
 	@GeneratedValue(strategy = GenerationType.AUTO)
+	@MyEdit(visible = false)
 	private Long id;
+	@MyEdit(readOnly = true)
 	private String name;
+	@MyEdit
 	private int points;
 	@Enumerated(EnumType.STRING)
+	@MyEdit
 	private Level level;
 	
-	
+	public String getVirtual(){
+		return "aaaa";
+	}
+
 	public static Score generate() {
 		return new Score(null, getRandomNick(), RANDOM.nextInt(50, 300), Level.values()[RANDOM.nextInt(Level.values().length)]);
 	}
diff --git a/src/main/java/lab/gui/EditController.java b/src/main/java/lab/gui/EditController.java
index 2d386b3..815f2da 100644
--- a/src/main/java/lab/gui/EditController.java
+++ b/src/main/java/lab/gui/EditController.java
@@ -1,7 +1,14 @@
 package lab.gui;
 
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.ResourceBundle;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -14,6 +21,7 @@ import javafx.scene.control.Label;
 import javafx.scene.control.TextField;
 import javafx.scene.layout.GridPane;
 import javafx.stage.Stage;
+import lab.MyEdit;
 import lab.data.Score;
 import lombok.Setter;
 
@@ -50,7 +58,50 @@ public class EditController {
 
 	@FXML
 	void btnOkAction(ActionEvent event) {
-		//TODO: add code to read values from text fields
+		try {
+			BeanInfo beanInfo = Introspector.getBeanInfo(data.getClass());
+			for (PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
+				try {
+					String name = propertyDescriptor.getName();
+					Field field = data.getClass().getDeclaredField(name);
+					MyEdit myEdit = field.getAnnotation(MyEdit.class);
+					if(myEdit == null || !myEdit.visible() || myEdit.readOnly()) {
+						continue;
+					}
+					TextField textField = nameToTextField.get(name);
+					String stringValue = textField.getText();
+					Object value = null;
+					if (propertyDescriptor.getPropertyType() == String.class) {
+						value = stringValue;
+					} else if (stringValue == null || stringValue.isBlank()) {
+						value = null;
+					} else if (propertyDescriptor.getPropertyType() == Integer.class
+							|| propertyDescriptor.getPropertyType() == int.class) {
+						value = Integer.parseInt(stringValue);
+					} else if (propertyDescriptor.getPropertyType() == Long.class
+							|| propertyDescriptor.getPropertyType() == long.class) {
+						value = Long.parseLong(stringValue);
+					} else if (propertyDescriptor.getPropertyType() == Double.class
+							|| propertyDescriptor.getPropertyType() == double.class) {
+						value = Double.parseDouble(stringValue);
+					} else if (propertyDescriptor.getPropertyType().isEnum()) {
+						for (Object enumConstant : propertyDescriptor.getPropertyType().getEnumConstants()) {
+							if (enumConstant.toString().equalsIgnoreCase(stringValue)) {
+								value = enumConstant;
+								break;
+							}
+						}
+					}
+					if (propertyDescriptor.getWriteMethod() != null) {
+						propertyDescriptor.getWriteMethod().invoke(data, value);
+					}
+				} catch (NoSuchFieldException e) {
+					log.warn("property {} has no field", propertyDescriptor.getName());
+				}
+			}
+		} catch (IntrospectionException | IllegalAccessException | InvocationTargetException e) {
+			log.error(e);
+		}
 		
 		gameController.updateData((Score)data);
 		stage.hide();
@@ -71,7 +122,32 @@ public class EditController {
 		log.info("data set {}", data);
 		content.getChildren().clear();
 		
-		//TODO: code to detect properties and add rows to dialog  
+		ResourceBundle msg = ResourceBundle.getBundle("msg");
+		try {
+			BeanInfo beanInfo = Introspector.getBeanInfo(data.getClass());
+			int row = 0;
+			for (PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
+				try {
+					Field field = data.getClass().getDeclaredField(propertyDescriptor.getName());
+					MyEdit myEdit = field.getAnnotation(MyEdit.class);
+					if (myEdit == null) {
+						continue;
+					}
+					if (!myEdit.visible()) {
+						continue;
+					}
+					String name = propertyDescriptor.getName();
+					Object value = propertyDescriptor.getReadMethod().invoke(data);
+					String localizedName = msg.getString(String.format("%s.%s", data.getClass().getSimpleName(), field.getName()));
+					addDialogRow(row, name, localizedName, value != null ? value.toString() : "", !myEdit.readOnly());
+					row++;
+				} catch (NoSuchFieldException e) {
+					log.warn("property '{}' has no field in class '{}'", propertyDescriptor.getName(), data.getClass().getCanonicalName());
+				}
+			}
+		} catch (IntrospectionException | InvocationTargetException | IllegalAccessException e) {
+			log.error(e);
+		}
 	}
 
 	private void addDialogRow(int rowNumber, String name, String descriptionName, String stringValue,
diff --git a/src/main/resources/lab/gui/application.css b/src/main/resources/lab/gui/application.css
index 7f0e980..b317217 100644
--- a/src/main/resources/lab/gui/application.css
+++ b/src/main/resources/lab/gui/application.css
@@ -22,7 +22,7 @@ Label {
 	-fx-background-color:RGB(0.0,0.0,100.0);
 }
 #menuPanel {
-	-fx-background-image:url("lochness-background.jpg");
+	-fx-background-image:url("game-background.jpg");
 	-fx-background-size: stretch;
 }
 
diff --git a/src/main/resources/lab/gui/game-background.jpg b/src/main/resources/lab/gui/game-background.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1875d2d18f49694c7e07858ffc4bf2eece5c1e39
GIT binary patch
literal 38592
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

literal 0
HcmV?d00001

diff --git a/src/main/resources/msg.properties b/src/main/resources/msg.properties
new file mode 100644
index 0000000..d0655f9
--- /dev/null
+++ b/src/main/resources/msg.properties
@@ -0,0 +1,5 @@
+
+Score.id     = id
+Score.level  = level
+Score.name   = name
+Score.points = points
diff --git a/src/main/resources/msg_cs.properties b/src/main/resources/msg_cs.properties
new file mode 100644
index 0000000..e397613
--- /dev/null
+++ b/src/main/resources/msg_cs.properties
@@ -0,0 +1,5 @@
+
+Score.id     = Jednozna\u010Dn\u00FD identifik\u00E1tor
+Score.level  = Obt\u00ED\u017Enost
+Score.name   = Jm\u00E9no
+Score.points = Body
diff --git a/src/main/resources/msg_cs_CZ.properties b/src/main/resources/msg_cs_CZ.properties
new file mode 100644
index 0000000..73f926b
--- /dev/null
+++ b/src/main/resources/msg_cs_CZ.properties
@@ -0,0 +1,4 @@
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+
+Score.id     = Jedine\u010Dn\u00FD identifik\u00E1tor
+Score.name   = N\u00E1zev
diff --git a/src/main/resources/msg_en.properties b/src/main/resources/msg_en.properties
new file mode 100644
index 0000000..83da6ab
--- /dev/null
+++ b/src/main/resources/msg_en.properties
@@ -0,0 +1,6 @@
+#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
+
+Score.id     = Unique identificator
+Score.level  = Level
+Score.name   = Name
+Score.points = Points
diff --git a/src/test/java/jez04/structure/test/ClassStructureTest.java b/src/test/java/jez04/structure/test/ClassStructureTest.java
index 710d8d2..2e2be8b 100644
--- a/src/test/java/jez04/structure/test/ClassStructureTest.java
+++ b/src/test/java/jez04/structure/test/ClassStructureTest.java
@@ -17,35 +17,24 @@ class ClassStructureTest {
 	// @formatter:off
 	@ParameterizedTest
 	@CsvSource({
-			"Bullet.java,serialVersionUID",
-			"Bullet.java,@Serial",
-			"BulletAnimated.java,serialVersionUID",
-			"BulletAnimated.java,@Serial",
-			"Cannon.java,serialVersionUID",
-			"Cannon.java,@Serial",
-			"Ufo.java,serialVersionUID",
-			"Ufo.java,@Serial",
-			"MyPoint.java,serialVersionUID",
-			"MyPoint.java,@Serial",
-			"WorldEntity.java,serialVersionUID",
-			"WorldEntity.java,@Serial",
-
-			"WorldEntity.java,transient",
-			"BulletAnimated.java,transient",
-			
-			"World.java,new ServerSocket",
-			"World.java,Socket",
-			"World.java,accept",
-			"World.java,ObjectOutputStream",
-			"World.java,writeObject",
-			"World.java,new Socket",
-			"World.java,ObjectInputStream",
-			"World.java,ObjectInputStream",
-			"World.java,synchronized",
+			"Score.java,@MyEdit,4",
+			"EditController.java,Introspector.getBeanInfo,1",
+			"EditController.java,BeanInfo,1",
+			"EditController.java,PropertyDescriptor,1",
+			"EditController.java,getDeclaredField,1",
+			"EditController.java,getAnnotation,1",
+			"EditController.java,\\.readOnly\\(\\),1",
+			"EditController.java,\\.visible\\(\\),1",
+			"MyEdit.java,@interface,1",
+			"MyEdit.java,@Retention,1",
+			"MyEdit.java,RetentionPolicy\\.RUNTIME,1",
+			"MyEdit.java,readOnly\\(\\),1",
+			"MyEdit.java,visible\\(\\),1",
+			"msg(_.*)?\\.properties,points,2",
 		})
 	// @formatter:on
-	void anotaceTest(String file, String annotation) throws URISyntaxException {
-		assertThat(TextFileContains.getProjectRoot(getClass()), new TextFileContains(file, annotation));
+	void anotaceTest(String file, String annotation, int count) throws URISyntaxException {
+		assertThat(TextFileContains.getProjectRoot(getClass()), new TextFileContains(file, annotation).count(count).useRegExpForName(true));
 	}
 
 
-- 
GitLab