From a29fb6d0f5d438548f629b54a9e83672619c2163 Mon Sep 17 00:00:00 2001 From: Lauri Maaninka Date: Mon, 11 May 2026 03:54:34 +0300 Subject: [PATCH] #12 ominaisuus valmis --- README.md | 2 +- pom.xml | 5 ++ src/main/java/fi/lpam/App.java | 4 ++ src/main/java/fi/lpam/Main.java | 10 ++-- .../fi/lpam/gui/elementit/MuutosIlmoitus.java | 55 +++++++++++++++++++ src/main/java/module-info.java | 1 + .../main/resources/CHANGELOG.md | 0 src/main/resources/defaults.properties | 1 - 8 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 src/main/java/fi/lpam/gui/elementit/MuutosIlmoitus.java rename CHANGELOG.md => src/main/resources/CHANGELOG.md (100%) diff --git a/README.md b/README.md index deab1b6..71a317d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # [LICENSE](LICENSE) -# [Versiohistoria](CHANGELOG.md) +# [Versiohistoria](src/main/resources/CHANGELOG.md) # Kuvaus Pienen kotiateriapalvelun käyttöön rakennettu ohjelma sisältäen seuraavat ominaisuudet diff --git a/pom.xml b/pom.xml index 17c948d..9a6b0e8 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,11 @@ 3.53.1.0 compile + + one.jpro.platform + jpro-mdfx + 0.6.2 + diff --git a/src/main/java/fi/lpam/App.java b/src/main/java/fi/lpam/App.java index f562bb6..ea5880b 100644 --- a/src/main/java/fi/lpam/App.java +++ b/src/main/java/fi/lpam/App.java @@ -4,9 +4,11 @@ import fi.lpam.gui.Asiakashallinta; import fi.lpam.gui.Kierroshallinta; import fi.lpam.gui.KuljetusRaportit; import fi.lpam.gui.KuljetusListat; +import fi.lpam.gui.elementit.MuutosIlmoitus; import javafx.application.Application; import javafx.geometry.Side; import javafx.scene.Scene; +import javafx.scene.control.Alert; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; import javafx.scene.image.Image; @@ -63,5 +65,7 @@ public class App extends Application { primaryStage.setMaximized(true); primaryStage.show(); primaryStage.getIcons().add(new Image(Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream("kuljetusruokalaatikko.jpg")))); + + if (!Main.properties.getProperty("version").equals(Main.properties.getProperty("viimeisinVersio"))) new MuutosIlmoitus(); } } \ No newline at end of file diff --git a/src/main/java/fi/lpam/Main.java b/src/main/java/fi/lpam/Main.java index 17b61c7..6278def 100644 --- a/src/main/java/fi/lpam/Main.java +++ b/src/main/java/fi/lpam/Main.java @@ -21,8 +21,9 @@ public class Main { } try { - properties = new Properties(); - properties.load(Main.class.getClassLoader().getResourceAsStream("defaults.properties")); + Properties defaults = new Properties(); + defaults.load(Main.class.getClassLoader().getResourceAsStream("defaults.properties")); + properties = new Properties(defaults); properties.load(new FileInputStream(asetustiedosto)); } catch (IOException e) { @@ -30,9 +31,8 @@ public class Main { e.printStackTrace(); } - properties.forEach((key, value) -> { - System.out.println(key + ": " + value); - }); + System.out.println(properties.getProperty("version")); + System.out.println(properties.getProperty("viimeisinVersio")); App.main(); diff --git a/src/main/java/fi/lpam/gui/elementit/MuutosIlmoitus.java b/src/main/java/fi/lpam/gui/elementit/MuutosIlmoitus.java new file mode 100644 index 0000000..d1f5b82 --- /dev/null +++ b/src/main/java/fi/lpam/gui/elementit/MuutosIlmoitus.java @@ -0,0 +1,55 @@ +package fi.lpam.gui.elementit; + +import fi.lpam.Main; +import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.layout.*; +import javafx.scene.paint.Color; +import javafx.stage.Stage; +import one.jpro.platform.mdfx.MarkdownView; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Objects; + +public class MuutosIlmoitus extends Stage { + public MuutosIlmoitus() { + super(); + VBox root = new VBox(); + root.setBorder(new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, CornerRadii.EMPTY, BorderWidths.DEFAULT))); + root.setPadding(TabPohja.oletusInsets); + root.setStyle(TabPohja.oletusStyle); + root.setAlignment(Pos.CENTER); + root.setSpacing(10); + + String md; + try (InputStreamReader isr = new InputStreamReader(Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream("CHANGELOG.md")))) { + md = isr.readAllAsString(); + int toinenMerkintä = md.indexOf("# ", 1); + int kolmasMerkintä = md.indexOf("# ", toinenMerkintä + 1); + int endIndex = md.indexOf("# ", kolmasMerkintä + 1); + md = md.substring(0, endIndex); + } + catch (IOException e) { + e.printStackTrace(); + md = "# Virhe versiolokin haussa"; + } + + MarkdownView markdownView = new MarkdownView(md); + root.getChildren().add(markdownView); + + Button ok = new Button("OK"); + ok.setFont(TabPohja.buttonFont); + ok.setOnAction(e -> this.close()); + root.getChildren().add(ok); + + Scene scene = new Scene(root); + this.setScene(scene); + this.setTitle("Uusi versio, katso muutokset alta!"); + this.setResizable(false); + this.show(); + + Main.properties.setProperty("viimeisinVersio", Main.properties.getProperty("version")); + } +} diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 58b192b..30d36ec 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -8,6 +8,7 @@ module fi.lpam.ruokamanageri { requires java.desktop; requires org.apache.pdfbox; requires org.apache.commons.lang3; + requires one.jpro.platform.mdfx; opens fi.lpam.dataluokat to javafx.base; exports fi.lpam; diff --git a/CHANGELOG.md b/src/main/resources/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to src/main/resources/CHANGELOG.md diff --git a/src/main/resources/defaults.properties b/src/main/resources/defaults.properties index 84a1be6..b73f2ce 100644 --- a/src/main/resources/defaults.properties +++ b/src/main/resources/defaults.properties @@ -1,3 +1,2 @@ version=${project.version} - viimeisinVersio=0.0.0 \ No newline at end of file