From 05accee591324a5e024218e776dc1cac4913b783 Mon Sep 17 00:00:00 2001 From: Robert Vokac Date: Sat, 3 Feb 2024 00:04:10 +0000 Subject: [PATCH] Added new improvements --- .../utils/timecalc/gui/TimeCalcButton.java | 13 ---- .../timecalc/gui/common/TimeCalcButton.java | 18 ++++++ .../timecalc/gui/{ => common}/Toaster.java | 2 +- .../gui/{ => common}/WeatherWindow.java | 2 +- .../timecalc/gui/{ => common}/Widget.java | 6 +- .../gui/{ => progress}/AnalogClock.java | 4 +- .../timecalc/gui/{ => progress}/Battery.java | 3 +- .../gui/{ => progress}/ProgressCircle.java | 3 +- .../gui/{ => progress}/ProgressSquare.java | 3 +- .../utils/timecalc/main/TimeCalcWindow.java | 60 +++++++++---------- .../utils/timecalc/utils/DateFormats.java | 4 ++ .../nanoboot/utils/timecalc/utils/Jokes.java | 2 +- 12 files changed, 65 insertions(+), 55 deletions(-) delete mode 100644 src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java create mode 100644 src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => common}/Toaster.java (99%) rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => common}/WeatherWindow.java (99%) rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => common}/Widget.java (91%) rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => progress}/AnalogClock.java (97%) rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => progress}/Battery.java (98%) rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => progress}/ProgressCircle.java (92%) rename src/main/java/org/nanoboot/utils/timecalc/gui/{ => progress}/ProgressSquare.java (95%) diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java b/src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java deleted file mode 100644 index ecbe72d..0000000 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/TimeCalcButton.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.nanoboot.utils.timecalc.gui; - -import javax.swing.JButton; - -/** - * @author Robert - * @since 21.02.2024 - */ -public class TimeCalcButton extends JButton { - public TimeCalcButton(String label) { - super(label); - } -} diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java b/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java new file mode 100644 index 0000000..4695d3c --- /dev/null +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java @@ -0,0 +1,18 @@ +package org.nanoboot.utils.timecalc.gui.common; + +import javax.swing.JButton; + +/** + * @author Robert + * @since 21.02.2024 + */ +public class TimeCalcButton extends JButton { + private static final int BUTTON_WIDTH = 100; + private static final int BUTTON_HEIGHT = 30; + public TimeCalcButton(String label) { + super(label); + } + public void setBounds(int x, int y) { + setBounds(x, y, BUTTON_WIDTH, BUTTON_HEIGHT); + } +} diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/Toaster.java b/src/main/java/org/nanoboot/utils/timecalc/gui/common/Toaster.java similarity index 99% rename from src/main/java/org/nanoboot/utils/timecalc/gui/Toaster.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/common/Toaster.java index 28f6661..b81b8e7 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/Toaster.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/common/Toaster.java @@ -1,4 +1,4 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.common; /** * Java Toaster is a java utility class for your swing applications * that show an animate box coming from the bottom of your screen diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/WeatherWindow.java b/src/main/java/org/nanoboot/utils/timecalc/gui/common/WeatherWindow.java similarity index 99% rename from src/main/java/org/nanoboot/utils/timecalc/gui/WeatherWindow.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/common/WeatherWindow.java index 12e65d8..5bbbe01 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/WeatherWindow.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/common/WeatherWindow.java @@ -1,4 +1,4 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.common; import org.nanoboot.utils.timecalc.utils.Utils; diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/Widget.java b/src/main/java/org/nanoboot/utils/timecalc/gui/common/Widget.java similarity index 91% rename from src/main/java/org/nanoboot/utils/timecalc/gui/Widget.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/common/Widget.java index 154ad32..1d7b741 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/Widget.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/common/Widget.java @@ -1,4 +1,4 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.common; import org.nanoboot.utils.timecalc.utils.Utils; @@ -58,5 +58,7 @@ public class Widget extends JPanel { } this.donePercent = donePercent; } - + public void setBounds(int x, int y, int side) { + setBounds(x, y, side, side); + } } diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/AnalogClock.java b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/AnalogClock.java similarity index 97% rename from src/main/java/org/nanoboot/utils/timecalc/gui/AnalogClock.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/progress/AnalogClock.java index 195f1f7..206d0f9 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/AnalogClock.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/AnalogClock.java @@ -1,5 +1,6 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.progress; +import org.nanoboot.utils.timecalc.gui.common.Widget; import org.nanoboot.utils.timecalc.main.TimeCalcConf; import org.nanoboot.utils.timecalc.utils.Utils; @@ -133,4 +134,5 @@ public class AnalogClock extends Widget { public int getTimerDelay() { return 20; } + } \ No newline at end of file diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/Battery.java b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/Battery.java similarity index 98% rename from src/main/java/org/nanoboot/utils/timecalc/gui/Battery.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/progress/Battery.java index 59fa3d9..6fee627 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/Battery.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/Battery.java @@ -1,5 +1,6 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.progress; +import org.nanoboot.utils.timecalc.gui.common.Widget; import org.nanoboot.utils.timecalc.main.TimeCalcConf; import org.nanoboot.utils.timecalc.utils.Utils; diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressCircle.java b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressCircle.java similarity index 92% rename from src/main/java/org/nanoboot/utils/timecalc/gui/ProgressCircle.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressCircle.java index 248c18a..10e24e3 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressCircle.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressCircle.java @@ -1,5 +1,6 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.progress; +import org.nanoboot.utils.timecalc.gui.common.Widget; import org.nanoboot.utils.timecalc.utils.Utils; import java.awt.Color; diff --git a/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressSquare.java b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressSquare.java similarity index 95% rename from src/main/java/org/nanoboot/utils/timecalc/gui/ProgressSquare.java rename to src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressSquare.java index cc002e9..b9849ac 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/gui/ProgressSquare.java +++ b/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressSquare.java @@ -1,5 +1,6 @@ -package org.nanoboot.utils.timecalc.gui; +package org.nanoboot.utils.timecalc.gui.progress; +import org.nanoboot.utils.timecalc.gui.common.Widget; import org.nanoboot.utils.timecalc.utils.Utils; import java.awt.Color; diff --git a/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java index c508d2e..815b4f1 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java +++ b/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcWindow.java @@ -1,19 +1,19 @@ package org.nanoboot.utils.timecalc.main; -import org.nanoboot.utils.timecalc.gui.TimeCalcButton; -import org.nanoboot.utils.timecalc.gui.Toaster; -import org.nanoboot.utils.timecalc.gui.WeatherWindow; -import org.nanoboot.utils.timecalc.gui.AnalogClock; -import org.nanoboot.utils.timecalc.gui.Battery; -import org.nanoboot.utils.timecalc.gui.ProgressCircle; -import org.nanoboot.utils.timecalc.gui.ProgressSquare; +import org.nanoboot.utils.timecalc.gui.common.TimeCalcButton; +import org.nanoboot.utils.timecalc.gui.common.Toaster; +import org.nanoboot.utils.timecalc.gui.common.WeatherWindow; +import org.nanoboot.utils.timecalc.gui.progress.AnalogClock; +import org.nanoboot.utils.timecalc.gui.progress.Battery; +import org.nanoboot.utils.timecalc.gui.progress.ProgressCircle; +import org.nanoboot.utils.timecalc.gui.progress.ProgressSquare; import org.nanoboot.utils.timecalc.utils.Constants; +import org.nanoboot.utils.timecalc.utils.DateFormats; import org.nanoboot.utils.timecalc.utils.Jokes; import org.nanoboot.utils.timecalc.utils.Utils; import javax.imageio.ImageIO; import javax.swing.ImageIcon; -import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextPane; @@ -32,7 +32,6 @@ import java.text.NumberFormat; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.Base64; import java.util.Calendar; import java.util.Date; @@ -49,11 +48,9 @@ public class TimeCalcWindow { private static final int WORKING_HOURS_LENGTH = 8; private static final int WORKING_MINUTES_LENGTH = 30; private static final String NEW_LINE = "\n"; - private final static DateTimeFormatter DATE_TIME_FORMATTER = - DateTimeFormatter.ofPattern("HH:mm:ss:SSS"); + private static final int MARGIN = 10; - public static final int BUTTON_WIDTH = 100; - public static final int BUTTON_HEIGHT = 30; + private final String startTime; private final String windowTitle; private String overTime; @@ -62,7 +59,6 @@ public class TimeCalcWindow { private final int overtimeHour; private final int overtimeMinute; private final int totalMinutes; - private final Set alreadyShownTimes = new HashSet<>(); private final Set alreadyShownPercents = new HashSet<>(); private int endHour; private int endMinute; @@ -196,20 +192,18 @@ public class TimeCalcWindow { window.add(text); weatherButton - .setBounds(20, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, - BUTTON_HEIGHT); - commandButton.setBounds(20, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); + .setBounds(20, text.getY() + text.getHeight() + MARGIN); + commandButton.setBounds(20, text.getY() + text.getHeight() + MARGIN); - jokeButton.setBounds(140, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); + jokeButton.setBounds(140, text.getY() + text.getHeight() + MARGIN); restartButton - .setBounds(280, text.getY() + text.getHeight() + MARGIN, - BUTTON_WIDTH, BUTTON_HEIGHT); - exitButton.setBounds(390, text.getY() + text.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); - aboutButton.setBounds(exitButton.getX(), exitButton.getY() + exitButton.getHeight() + MARGIN, BUTTON_WIDTH, BUTTON_HEIGHT); + .setBounds(280, text.getY() + text.getHeight() + MARGIN); + exitButton.setBounds(390, text.getY() + text.getHeight() + MARGIN); + aboutButton.setBounds(exitButton.getX(), exitButton.getY() + exitButton.getHeight() + MARGIN); - focusButton.setBounds(exitButton.getX() + 3 * MARGIN + exitButton.getWidth() + 20, MARGIN, 60, BUTTON_HEIGHT); + focusButton.setBounds(exitButton.getX() + 3 * MARGIN + exitButton.getWidth() + 20, MARGIN, 60, aboutButton.getHeight()); - window.setSize(520 + 20 + 100, 580 + MARGIN + BUTTON_WIDTH); + window.setSize(520 + 20 + 100, 580 + MARGIN + aboutButton.getHeight()); window.setLayout(null); window.setVisible(true); this.windowTitle = createWindowTitle(); @@ -271,23 +265,23 @@ public class TimeCalcWindow { }); AnalogClock analogClock = new AnalogClock(); - analogClock.setBounds(10, 10, 200, 200); + analogClock.setBounds(MARGIN, MARGIN, 200); window.add(analogClock); ProgressSquare progressSquare = new ProgressSquare(); progressSquare - .setBounds(10 + analogClock.getWidth() + 10, 10, 200, 200); + .setBounds(MARGIN + analogClock.getWidth() + MARGIN, MARGIN, 200); window.add(progressSquare); ProgressCircle progressCircle = new ProgressCircle(); progressCircle - .setBounds(10 + progressSquare.getBounds().x + progressSquare - .getWidth() + 10, 10, 80, 80); + .setBounds(MARGIN + progressSquare.getBounds().x + progressSquare + .getWidth() + MARGIN, MARGIN, 80); window.add(progressCircle); Battery batteryForDay = new Battery(); batteryForDay.setBounds(progressCircle.getBounds().x, - progressCircle.getY() + 10 + progressCircle.getHeight(), 90, + progressCircle.getY() + MARGIN + progressCircle.getHeight(), 90, 140); window.add(batteryForDay); @@ -327,12 +321,12 @@ public class TimeCalcWindow { Battery batteryForMonth = new Battery(); batteryForMonth.setBounds(batteryForDay.getBounds().x + batteryForDay.getWidth(), - batteryForDay.getY() + batteryForWeek.getHeight() + 10, 90, 140); + batteryForDay.getY() + batteryForWeek.getHeight() + MARGIN, 90, 140); window.add(batteryForMonth); Battery batteryForHour = new Battery(); batteryForHour.setBounds(batteryForMonth.getBounds().x, - batteryForMonth.getY() + batteryForMonth.getHeight() + 10, 90, 140); + batteryForMonth.getY() + batteryForMonth.getHeight() + MARGIN, 90, 140); window.add(batteryForHour); Rectangle hourRectangle = batteryForHour.getBounds(); Rectangle dayRectangle = batteryForDay.getBounds(); @@ -377,10 +371,10 @@ public class TimeCalcWindow { commandButton.setVisible(!Utils.everythingHidden.get()); restartButton.setVisible(!Utils.everythingHidden.get()); exitButton.setVisible(!Utils.everythingHidden.get()); - window.setTitle(Utils.everythingHidden.get() ? "" : "Time Calc"); + window.setTitle(Utils.everythingHidden.get() ? "" : windowTitle); sb = new StringBuilder(); LocalDateTime now = LocalDateTime.now(); - String nowString = DATE_TIME_FORMATTER.format(now); + String nowString = DateFormats.DATE_TIME_FORMATTER_HHmmssSSS.format(now); // if (alreadyShownTimes.contains(nowString)) { // //nothing to do // try { diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java b/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java index 582f2e0..642080c 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/DateFormats.java @@ -1,5 +1,7 @@ package org.nanoboot.utils.timecalc.utils; +import java.time.format.DateTimeFormatter; + /** * @author Robert * @since 21.02.2024 @@ -8,4 +10,6 @@ public class DateFormats { private DateFormats() { //Not meant to be instantiated. } + public final static DateTimeFormatter DATE_TIME_FORMATTER_HHmmssSSS = + DateTimeFormatter.ofPattern("HH:mm:ss:SSS"); } diff --git a/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java b/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java index ee70314..7402e1f 100644 --- a/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java +++ b/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java @@ -1,6 +1,6 @@ package org.nanoboot.utils.timecalc.utils; -import org.nanoboot.utils.timecalc.gui.Toaster; +import org.nanoboot.utils.timecalc.gui.common.Toaster; import org.nanoboot.utils.timecalc.main.TimeCalcConf; import javax.swing.JFrame;