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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	KSGbif1Bl!w3rJ}5r~Exx jkzs(V0}$$fZtC_)98peUaCklgSg-#lp(h9V_v?QE_zHu@ 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