diff --git a/modules/time-calc-app/pom.xml b/modules/time-calc-app/pom.xml
index cd9e00d..a9c6b98 100644
--- a/modules/time-calc-app/pom.xml
+++ b/modules/time-calc-app/pom.xml
@@ -72,17 +72,6 @@
flatlaf
3.4.1
-
-
- org.openjfx
- javafx-controls
- 21
-
-
- org.openjfx
- javafx-web
- 21
-
\ No newline at end of file
diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcConfiguration.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcConfiguration.java
index 2c92f8a..0a241c8 100644
--- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcConfiguration.java
+++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcConfiguration.java
@@ -426,12 +426,6 @@ public class TimeCalcConfiguration {
}
return mapOfProperties.get(timeCalcProperty);
}
- public String getProperty(String key) {
- return timeCalcProperties.getString(key);
- }
- public void setProperty(String key, String value) {
- timeCalcProperties.setString(key, value);
- }
public String print() {
StringBuilder sb = new StringBuilder();
diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcProperties.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcProperties.java
index d10ae99..9df9c57 100644
--- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcProperties.java
+++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/app/TimeCalcProperties.java
@@ -83,14 +83,6 @@ public class TimeCalcProperties {
getDefaultStringValue(timeCalcProperty)));
}
- public String getString(String key) {
- return (String) properties.get(key);
- }
-
- public void setString(String key, String value) {
- properties.put(key, value);
- }
-
private String getDefaultStringValue(TimeCalcProperty timeCalcProperty) {
if (!defaultProperties
.containsKey(timeCalcProperty.getKey())) {
diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java
index 592530f..4182638 100644
--- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java
+++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java
@@ -101,11 +101,7 @@ public class Widget extends JPanel implements
private WidgetMenu widgetMenu = null;
public Widget() {
setBackground(BACKGROUND_COLOR);
- int timerDelay = getTimerDelay();
-// if(timerDelay > 10) {
-// timerDelay = 10;
-// }
- new Timer(timerDelay, e -> repaint()).start();
+ new Timer(getTimerDelay(), e -> repaint()).start();
this.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
@@ -212,7 +208,7 @@ public class Widget extends JPanel implements
}
public int getTimerDelay() {
- return 10;
+ return 100;
}
// @Override
diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java
index 472487e..2fbb48c 100644
--- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java
+++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/MainWindow.java
@@ -104,7 +104,7 @@ public class MainWindow extends TWindow {
private final TButton restartButton;
private final TButton focusButton;
private final TButton helpButton;
- private final TButton webBrowserButton;
+ private final TButton weatherButton;
private final TButton commandButton;
private final TButton jokeButton;
private final AboutButton aboutButton;
@@ -254,7 +254,7 @@ public class MainWindow extends TWindow {
this.exitButton = new TButton("Exit");
this.focusButton = new TButton(allowOnlyBasicFeaturesProperty.getValue() ? " " : "Focus");
this.helpButton = new TButton("Help");
- this.webBrowserButton = new TButton("Browse");
+ this.weatherButton = new TButton("Weather");
this.commandButton = new TButton("Command");
this.jokeButton = new TButton("Joke");
this.aboutButton = new AboutButton();
@@ -360,7 +360,7 @@ public class MainWindow extends TWindow {
add(walkingHumanProgress);
walkingHumanProgress.visibleProperty
.bindTo(timeCalcConfiguration.walkingHumanVisibleProperty);
- webBrowserButton
+ weatherButton
.setBounds(SwingUtils.MARGIN, walkingHumanProgress.getY()
+ walkingHumanProgress.getHeight());
@@ -631,7 +631,6 @@ public class MainWindow extends TWindow {
add(elapsedTextField);
add(remainingTextFieldLabel);
add(remainingTextField);
- add(webBrowserButton);
}
if(!allowOnlyBasicFeaturesProperty.getValue()) {
add(saveButton);
@@ -673,7 +672,6 @@ public class MainWindow extends TWindow {
configButton.setBoundsFromTop(weekLabel);
workDaysButton.setBoundsFromLeft(configButton);
activitiesButton.setBoundsFromLeft(workDaysButton);
- webBrowserButton.setBoundsFromLeft(activitiesButton);
exitButton.setBounds(saveButton.getX() + saveButton.getWidth() - activitiesButton.getWidth(), workDaysButton.getY(), activitiesButton.getWidth(), activitiesButton.getHeight());
restartButton.setBounds(exitButton.getX() - SwingUtils.MARGIN - activitiesButton.getWidth(), activitiesButton.getY(), activitiesButton.getWidth(), activitiesButton.getHeight());
@@ -696,8 +694,8 @@ public class MainWindow extends TWindow {
setTitle(getWindowTitle());
- webBrowserButton
- .addActionListener(e -> WebBrowser.show(timeCalcConfiguration));
+ weatherButton
+ .addActionListener(e -> new WeatherWindow().setVisible(true));
commandButton.addActionListener(
new CommandActionListener(timeCalcApp, timeCalcConfiguration));
diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/WeatherWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/WeatherWindow.java
new file mode 100644
index 0000000..c9e815c
--- /dev/null
+++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/windows/WeatherWindow.java
@@ -0,0 +1,160 @@
+package org.nanoboot.utils.timecalc.swing.windows;
+
+import org.nanoboot.utils.timecalc.utils.common.Utils;
+
+import javax.swing.JEditorPane;
+import javax.swing.JFrame;
+import javax.swing.JScrollPane;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * @author Robert Vokac
+ * @since 16.02.2024
+ */
+public class WeatherWindow extends JFrame {
+
+ public WeatherWindow() {
+ this.setSize(400, 300);
+
+ JEditorPane jep = new JEditorPane();
+ jep.setEditable(false);
+ JScrollPane scrollPane = new JScrollPane(jep);
+ scrollPane.setBounds(10, 10, 750, 550);
+ getContentPane().add(scrollPane);
+
+ // File proxyTxt = new File("proxy.txt");
+ // if (!proxyTxt.exists()) {
+ // jep.setText("Sorry, file proxy.txt was not found.");
+ // return;
+ // }
+ // final HttpProxy httpProxy;
+ // try {
+ // httpProxy = new HttpProxy(proxyTxt);
+ // } catch (RuntimeException e) {
+ // jep.setContentType("text/html");
+ // jep.setText(e.getMessage());
+ // return;
+ // }
+ try {
+ String pocasiHtml = null;
+ File pocasiHtmlFile = new File("pocasi.html");
+ try {
+ pocasiHtml = downloadFile("https://pocasi.seznam.cz/praha");
+ pocasiHtml = prettyFormatXml(pocasiHtml, 4);
+ Utils.writeTextToFile(pocasiHtmlFile, pocasiHtml);
+ } catch (Exception e) {
+ e.printStackTrace();
+ pocasiHtml = pocasiHtmlFile.exists()
+ ? Utils.readTextFromFile(pocasiHtmlFile)
+ : "Sorry, pocasi.html was not found.";
+ }
+
+ {
+ StringBuilder sb = new StringBuilder();
+ boolean ogm_detailed_forecast_Started = false;
+ for (String line : pocasiHtml.split("\\r?\\n|\\r")) {
+
+ if (line.contains("ogm-detailed-forecast")) {
+ ogm_detailed_forecast_Started = true;
+ }
+ if (ogm_detailed_forecast_Started && line
+ .contains("