From c6502e34fcd59ead87bba70762dfa8a3d2ec660c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz>
Date: Wed, 17 Mar 2021 22:35:06 +0100
Subject: [PATCH] solution

---
 src/main/java/koz01/java2/lab06/App.java      | 10 ++--
 .../koz01/java2/lab06/Texts.properties        |  4 ++
 .../koz01/java2/lab06/Texts_cs_CZ.properties  |  4 ++
 .../koz01/java2/lab06/Texts_en.properties     |  1 +
 .../koz01/java2/lab06/Texts_en_GB.properties  |  1 +
 .../koz01/java2/lab06/Texts_en_US.properties  |  1 +
 .../resources/koz01/java2/lab06/screen.fxml   |  2 +-
 .../java/koz01/java2/lab06/DemoLocale.java    | 45 +++++++++++++++++
 .../java/koz01/java2/lab06/DemoNumbers.java   | 50 +++++++++++++++++++
 9 files changed, 114 insertions(+), 4 deletions(-)
 create mode 100644 src/main/resources/koz01/java2/lab06/Texts.properties
 create mode 100644 src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties
 create mode 100644 src/main/resources/koz01/java2/lab06/Texts_en.properties
 create mode 100644 src/main/resources/koz01/java2/lab06/Texts_en_GB.properties
 create mode 100644 src/main/resources/koz01/java2/lab06/Texts_en_US.properties
 create mode 100644 src/test/java/koz01/java2/lab06/DemoLocale.java
 create mode 100644 src/test/java/koz01/java2/lab06/DemoNumbers.java

diff --git a/src/main/java/koz01/java2/lab06/App.java b/src/main/java/koz01/java2/lab06/App.java
index cbbaae2..4dc7590 100644
--- a/src/main/java/koz01/java2/lab06/App.java
+++ b/src/main/java/koz01/java2/lab06/App.java
@@ -1,8 +1,11 @@
 
 package koz01.java2.lab06;
 
+import java.util.ResourceBundle;
+
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.stage.Stage;
 
@@ -14,9 +17,10 @@ public class App extends Application {
 	@Override
 	public void start(Stage primaryStage) {
 		try {
-
-			Scene scene = new Scene(FXMLLoader.load(getClass().getResource(
-				"screen.fxml")), 400, 400);
+			ResourceBundle rb = ResourceBundle.getBundle("koz01.java2.lab06.Texts");
+			Parent parent = FXMLLoader.load(getClass().getResource("screen.fxml"),
+				rb);
+			Scene scene = new Scene(parent, 400, 400);
 			scene.getStylesheets().add(getClass().getResource("application.css")
 				.toExternalForm());
 			primaryStage.setScene(scene);
diff --git a/src/main/resources/koz01/java2/lab06/Texts.properties b/src/main/resources/koz01/java2/lab06/Texts.properties
new file mode 100644
index 0000000..d5248ee
--- /dev/null
+++ b/src/main/resources/koz01/java2/lab06/Texts.properties
@@ -0,0 +1,4 @@
+color=Barva
+greeting=Ahoj
+title=pane
+label=Label
\ No newline at end of file
diff --git a/src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties b/src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties
new file mode 100644
index 0000000..b87bce9
--- /dev/null
+++ b/src/main/resources/koz01/java2/lab06/Texts_cs_CZ.properties
@@ -0,0 +1,4 @@
+color=Barva
+greeting=\u010Cau
+title=kámo
+label=Popisek
\ No newline at end of file
diff --git a/src/main/resources/koz01/java2/lab06/Texts_en.properties b/src/main/resources/koz01/java2/lab06/Texts_en.properties
new file mode 100644
index 0000000..2e40f54
--- /dev/null
+++ b/src/main/resources/koz01/java2/lab06/Texts_en.properties
@@ -0,0 +1 @@
+greeting=Hello
\ No newline at end of file
diff --git a/src/main/resources/koz01/java2/lab06/Texts_en_GB.properties b/src/main/resources/koz01/java2/lab06/Texts_en_GB.properties
new file mode 100644
index 0000000..579b389
--- /dev/null
+++ b/src/main/resources/koz01/java2/lab06/Texts_en_GB.properties
@@ -0,0 +1 @@
+color=colour
\ No newline at end of file
diff --git a/src/main/resources/koz01/java2/lab06/Texts_en_US.properties b/src/main/resources/koz01/java2/lab06/Texts_en_US.properties
new file mode 100644
index 0000000..23b00e5
--- /dev/null
+++ b/src/main/resources/koz01/java2/lab06/Texts_en_US.properties
@@ -0,0 +1 @@
+color=color
diff --git a/src/main/resources/koz01/java2/lab06/screen.fxml b/src/main/resources/koz01/java2/lab06/screen.fxml
index be5e1b8..ab0ec2b 100644
--- a/src/main/resources/koz01/java2/lab06/screen.fxml
+++ b/src/main/resources/koz01/java2/lab06/screen.fxml
@@ -7,7 +7,7 @@
 
 <AnchorPane prefHeight="484.0" prefWidth="550.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1">
    <children>
-      <Label layoutX="129.0" layoutY="41.0" prefHeight="31.0" prefWidth="292.0" text="Label" />
+      <Label layoutX="129.0" layoutY="41.0" prefHeight="31.0" prefWidth="292.0" text="%label" />
       <Button layoutX="197.0" layoutY="300.0" mnemonicParsing="false" prefHeight="26.0" prefWidth="156.0" text="Button" />
    </children>
 </AnchorPane>
diff --git a/src/test/java/koz01/java2/lab06/DemoLocale.java b/src/test/java/koz01/java2/lab06/DemoLocale.java
new file mode 100644
index 0000000..43cfb96
--- /dev/null
+++ b/src/test/java/koz01/java2/lab06/DemoLocale.java
@@ -0,0 +1,45 @@
+package koz01.java2.lab06;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.format.FormatStyle;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.junit.jupiter.api.Test;
+
+import lombok.extern.log4j.Log4j2;
+
+@Log4j2
+public class DemoLocale {
+
+	@Test
+	public void testLocaleCreation() {
+		Locale locale = Locale.getDefault();
+		log.info("locale = {}", locale);
+	}
+
+	@Test
+	public void testResourceBundle() {
+		ResourceBundle resourceBundle = ResourceBundle.getBundle(
+			"koz01.java2.lab06.Texts", new Locale("ro", "RO"));
+		log.info("color = {}", resourceBundle.getObject("color"));
+		log.info("greeting = {} {}", resourceBundle.getObject("greeting"),
+			resourceBundle.getObject("title"));
+	}
+
+	@Test
+	public void testFormatNumber() {
+		log.info(String.format(Locale.KOREA, "%f\n", Math.PI));
+
+	}
+
+	@Test
+	public void testFormatDate() {
+		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDate(
+			FormatStyle.FULL).localizedBy(Locale.CHINA);
+		log.info("actual date = " + dateTimeFormatter.format(LocalDate.now()));
+				
+
+	}
+}
diff --git a/src/test/java/koz01/java2/lab06/DemoNumbers.java b/src/test/java/koz01/java2/lab06/DemoNumbers.java
new file mode 100644
index 0000000..852fa85
--- /dev/null
+++ b/src/test/java/koz01/java2/lab06/DemoNumbers.java
@@ -0,0 +1,50 @@
+package koz01.java2.lab06;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+import org.junit.jupiter.api.Test;
+
+import lombok.extern.log4j.Log4j2;
+
+@Log4j2
+public class DemoNumbers {
+
+	@Test
+	public void testDouble() {
+		double val = 0.1;
+		for (int i = 0; i < 10; i++) {
+			val += 0.1;
+		}
+		log.info("result = {}", val);
+	}
+
+	@Test
+	public void testBigDecimal() {
+		BigDecimal val = BigDecimal.valueOf(1, 1);
+		BigDecimal result = val;
+		for (int i = 0; i < 10; i++) {
+			result = result.add(val);
+		}
+		log.info("result = {}", val);
+	}
+
+	@Test
+	public void testEquals() {
+		BigDecimal val1 = BigDecimal.valueOf(1, 1);
+		BigDecimal val2 = BigDecimal.valueOf(10, 2);
+
+		log.info("val1 = {}, val2 = {}", val1, val2);
+		log.info("val1.equals(val2) = {}", val1.equals(val2));
+	}
+
+	@Test
+	public void testFactorial() {
+		BigInteger val = BigInteger.ONE;
+		final int fact = 20000;
+		for (int i = 2; i <= fact; i++) {
+			val = val.multiply(BigInteger.valueOf(i));
+		}
+		log.info("fact({})={}", fact, val);
+	}
+}
-- 
GitLab