diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/Main.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/Main.java index 8b78638..ec593a6 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/Main.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/Main.java @@ -1,10 +1,5 @@ package org.nanoboot.utils.timecalc.main; -import org.nanoboot.utils.timecalc.utils.Constants; -import org.nanoboot.utils.timecalc.utils.FileConstants; -import org.nanoboot.utils.timecalc.utils.Utils; - -import javax.swing.JOptionPane; import java.io.IOException; /** @@ -14,55 +9,8 @@ import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { - - Utils.startApp(); - while (true) { - boolean test = FileConstants.TEST_TXT.exists(); - String oldStartTime = Utils.readTextFromFile( - FileConstants.STARTTIME_TXT); - String oldOvertime = Utils.readTextFromFile( - FileConstants.OVERTIME_TXT); - String newStartTime = - test ? (oldStartTime != null ? oldStartTime : - Constants.DEFAULT_START_TIME) : - (String) JOptionPane.showInputDialog( - null, - "Start Time:", - "Start Time", - JOptionPane.PLAIN_MESSAGE, - null, - null, - oldStartTime == null ? - Constants.DEFAULT_START_TIME : - oldStartTime - ); - String newOvertime = - test ? (oldOvertime != null ? oldOvertime : - Constants.DEFAULT_OVERTIME) : - (String) JOptionPane.showInputDialog( - null, - "Overtime:", - "Overtime", - JOptionPane.PLAIN_MESSAGE, - null, - null, - oldOvertime == null ? - Constants.DEFAULT_OVERTIME : - oldOvertime - ); - - Utils.writeTextToFile(FileConstants.STARTTIME_TXT, newStartTime); - Utils.writeTextToFile(FileConstants.OVERTIME_TXT, newOvertime); - try { - TimeCalcManager timeCalc = - new TimeCalcManager(newStartTime, newOvertime); - } catch (Exception e) { - JOptionPane.showMessageDialog(null, "Error: " + e.getMessage(), - e.getMessage(), JOptionPane.ERROR_MESSAGE); - } - } - + TimeCalcApp timeCalcApp = new TimeCalcApp(); + timeCalcApp.start(args); } - } diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcApp.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcApp.java new file mode 100644 index 0000000..89b4416 --- /dev/null +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcApp.java @@ -0,0 +1,86 @@ +package org.nanoboot.utils.timecalc.main; + +import org.nanoboot.utils.timecalc.utils.Constants; +import org.nanoboot.utils.timecalc.utils.FileConstants; +import org.nanoboot.utils.timecalc.utils.Utils; + +import javax.swing.JOptionPane; +import java.io.IOException; + +/** + * @author Robert + * @since 31.01.2024 + */ +public class TimeCalcApp { + + private long startNanoTime = 0l; + + public void start(String[] args) throws IOException { + + if(startNanoTime != 0l) { + throw new TimeCalcException("TimeCalcApp was already started."); + } + startNanoTime = System.nanoTime(); + while (true) { + boolean test = FileConstants.TEST_TXT.exists(); + String oldStartTime = Utils.readTextFromFile( + FileConstants.STARTTIME_TXT); + String oldOvertime = Utils.readTextFromFile( + FileConstants.OVERTIME_TXT); + String newStartTime = + test ? (oldStartTime != null ? oldStartTime : + Constants.DEFAULT_START_TIME) : + (String) JOptionPane.showInputDialog( + null, + "Start Time:", + "Start Time", + JOptionPane.PLAIN_MESSAGE, + null, + null, + oldStartTime == null ? + Constants.DEFAULT_START_TIME : + oldStartTime + ); + String newOvertime = + test ? (oldOvertime != null ? oldOvertime : + Constants.DEFAULT_OVERTIME) : + (String) JOptionPane.showInputDialog( + null, + "Overtime:", + "Overtime", + JOptionPane.PLAIN_MESSAGE, + null, + null, + oldOvertime == null ? + Constants.DEFAULT_OVERTIME : + oldOvertime + ); + + Utils.writeTextToFile(FileConstants.STARTTIME_TXT, newStartTime); + Utils.writeTextToFile(FileConstants.OVERTIME_TXT, newOvertime); + try { + TimeCalcManager timeCalc = + new TimeCalcManager(newStartTime, newOvertime); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Error: " + e.getMessage(), + e.getMessage(), JOptionPane.ERROR_MESSAGE); + } + } + + } + + public long getCountOfMinutesSinceAppStarted() { + return getCountOfSecondsSinceAppStarted() / 60l; + } + public long getCountOfSecondsSinceAppStarted() { + return getCountOfMillisecondsSinceAppStarted() / 1000000000l; + } + public long getCountOfMillisecondsSinceAppStarted() { + if(startNanoTime == 0l) { + throw new TimeCalcException("App was not yet started."); + } + return System.nanoTime() - startNanoTime; + } + +} + diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java index 75409d9..7516a1b 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcConf.java @@ -64,5 +64,11 @@ public class TimeCalcConf { } return properties.get(key).equals("true"); } + public void load() { + //to be implemented + } + public void save() { + //to be implemented + } } diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcManager.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcManager.java index e6f548c..c4310c3 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcManager.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/TimeCalcManager.java @@ -1,19 +1,20 @@ package org.nanoboot.utils.timecalc.main; -import org.nanoboot.utils.timecalc.gui.common.ComponentRegistry; -import org.nanoboot.utils.timecalc.gui.common.TimeCalcButton; -import org.nanoboot.utils.timecalc.gui.common.TimeCalcWindow; -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.DayBattery; -import org.nanoboot.utils.timecalc.gui.progress.HourBattery; -import org.nanoboot.utils.timecalc.gui.progress.MonthBattery; -import org.nanoboot.utils.timecalc.gui.progress.ProgressCircle; -import org.nanoboot.utils.timecalc.gui.progress.ProgressSquare; -import org.nanoboot.utils.timecalc.gui.progress.WalkingHumanProgressAsciiArt; -import org.nanoboot.utils.timecalc.gui.progress.WeekBattery; +import org.nanoboot.utils.timecalc.swing.common.AboutButton; +import org.nanoboot.utils.timecalc.swing.common.ComponentRegistry; +import org.nanoboot.utils.timecalc.swing.common.TimeCalcButton; +import org.nanoboot.utils.timecalc.swing.common.TimeCalcWindow; +import org.nanoboot.utils.timecalc.swing.common.Toaster; +import org.nanoboot.utils.timecalc.swing.common.WeatherWindow; +import org.nanoboot.utils.timecalc.swing.progress.AnalogClock; +import org.nanoboot.utils.timecalc.swing.progress.Battery; +import org.nanoboot.utils.timecalc.swing.progress.DayBattery; +import org.nanoboot.utils.timecalc.swing.progress.HourBattery; +import org.nanoboot.utils.timecalc.swing.progress.MonthBattery; +import org.nanoboot.utils.timecalc.swing.progress.ProgressCircle; +import org.nanoboot.utils.timecalc.swing.progress.ProgressSquare; +import org.nanoboot.utils.timecalc.swing.progress.WalkingHumanProgressAsciiArt; +import org.nanoboot.utils.timecalc.swing.progress.WeekBattery; import org.nanoboot.utils.timecalc.utils.Constants; import org.nanoboot.utils.timecalc.utils.DateFormats; import org.nanoboot.utils.timecalc.utils.Jokes; @@ -52,9 +53,9 @@ public class TimeCalcManager { public TimeCalcManager(String startTimeIn, String overTimeIn) { Utils.everythingHidden - .set(TimeCalcConf.getInstance().isEverythingHidden()); + .setValue(TimeCalcConf.getInstance().isEverythingHidden()); Utils.toastsAreEnabled - .set(TimeCalcConf.getInstance().areToastsEnabled()); + .setValue(TimeCalcConf.getInstance().areToastsEnabled()); overTimeIn = (overTimeIn == null || overTimeIn.isEmpty()) ? Constants.DEFAULT_OVERTIME : overTimeIn; @@ -85,23 +86,23 @@ public class TimeCalcManager { // Key Pressed method public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_UP) { - Utils.everythingHidden.set(false); + Utils.everythingHidden.setValue(false); } if (e.getKeyCode() == KeyEvent.VK_DOWN) { - Utils.everythingHidden.set(true); + Utils.everythingHidden.setValue(true); } if (e.getKeyCode() == KeyEvent.VK_H) { Utils.everythingHidden.flip(); } if (e.getKeyCode() == KeyEvent.VK_G) { - if(!Utils.ultraLight.get() && Utils.highlighted.isEnabled()) { + if(!Utils.ultraLight.getValue() && Utils.highlighted.isEnabled()) { Utils.highlighted.disable(); } Utils.ultraLight.flip(); } if (e.getKeyCode() == KeyEvent.VK_C) { - if(Utils.ultraLight.get() && !Utils.highlighted.isEnabled()) { + if(Utils.ultraLight.getValue() && !Utils.highlighted.isEnabled()) { Utils.ultraLight.disable(); } Utils.highlighted.flip(); @@ -177,11 +178,11 @@ public class TimeCalcManager { break; case "color": Utils.highlighted - .set(commandsAsArray[1].equals("1")); + .setValue(commandsAsArray[1].equals("1")); break; case "gray": Utils.ultraLight - .set(commandsAsArray[1].equals("1")); + .setValue(commandsAsArray[1].equals("1")); break; case "waves": Battery.wavesOff = commandsAsArray[1].equals("0"); @@ -204,7 +205,7 @@ public class TimeCalcManager { break; case "toasts": Utils.toastsAreEnabled - .set(commandsAsArray[1].equals("1")); + .setValue(commandsAsArray[1].equals("1")); break; default: JOptionPane.showMessageDialog(null, @@ -322,8 +323,8 @@ public class TimeCalcManager { break; } - componentRegistry.setVisible(!Utils.everythingHidden.get()); - if (!Utils.highlighted.get() || Utils.ultraLight.get()) { + componentRegistry.setVisible(!Utils.everythingHidden.getValue()); + if (!Utils.highlighted.getValue() || Utils.ultraLight.getValue()) { jokeButton.setBackground(BG); commandButton.setBackground(BG); restartButton.setBackground(BG); @@ -346,9 +347,9 @@ public class TimeCalcManager { } jokeButton.setVisible( TimeCalcConf.getInstance().isJokeVisible() - && !Utils.everythingHidden.get()); + && !Utils.everythingHidden.getValue()); - window.setTitle(Utils.everythingHidden.get() ? "" : windowTitle); + window.setTitle(Utils.everythingHidden.getValue() ? "" : windowTitle); LocalDateTime now = LocalDateTime.now(); String nowString = @@ -444,7 +445,7 @@ public class TimeCalcManager { } walkingHumanProgressAsciiArt.setForeground( - Utils.highlighted.get() || walkingHumanProgressAsciiArt + Utils.highlighted.getValue() || walkingHumanProgressAsciiArt .getClientProperty("mouseEntered").equals("true") ? Color.BLACK : Color.LIGHT_GRAY); } diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/AboutButton.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/AboutButton.java similarity index 85% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/AboutButton.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/AboutButton.java index 5dc739b..43f1c1d 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/main/AboutButton.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/AboutButton.java @@ -1,12 +1,12 @@ -package org.nanoboot.utils.timecalc.main; +package org.nanoboot.utils.timecalc.swing.common; -import org.nanoboot.utils.timecalc.gui.common.TimeCalcButton; +import org.nanoboot.utils.timecalc.swing.common.TimeCalcButton; import org.nanoboot.utils.timecalc.utils.Utils; import javax.swing.JOptionPane; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class AboutButton extends TimeCalcButton { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/ComponentRegistry.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ComponentRegistry.java similarity index 89% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/ComponentRegistry.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ComponentRegistry.java index b5a07ab..9df46bf 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/ComponentRegistry.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/ComponentRegistry.java @@ -1,4 +1,4 @@ -package org.nanoboot.utils.timecalc.gui.common; +package org.nanoboot.utils.timecalc.swing.common; import javax.swing.JComponent; import java.awt.Component; @@ -6,7 +6,7 @@ import java.util.HashSet; import java.util.Set; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class ComponentRegistry { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/TimeCalcButton.java similarity index 92% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/TimeCalcButton.java index e2c8f5b..34a295d 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcButton.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/TimeCalcButton.java @@ -1,11 +1,11 @@ -package org.nanoboot.utils.timecalc.gui.common; +package org.nanoboot.utils.timecalc.swing.common; import javax.swing.JButton; import javax.swing.Timer; import java.awt.Color; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class TimeCalcButton extends JButton { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/TimeCalcWindow.java similarity index 90% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcWindow.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/TimeCalcWindow.java index ed2933c..e67fb7a 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/TimeCalcWindow.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/TimeCalcWindow.java @@ -1,11 +1,11 @@ -package org.nanoboot.utils.timecalc.gui.common; +package org.nanoboot.utils.timecalc.swing.common; import javax.swing.JFrame; import java.awt.Component; import java.awt.HeadlessException; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class TimeCalcWindow extends JFrame { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/Toaster.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Toaster.java similarity index 98% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/Toaster.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Toaster.java index 3b90b0a..4aa168a 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/Toaster.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Toaster.java @@ -1,7 +1,7 @@ /** * This Java class named Toaster is licence under this licence: Apache License V2.0 */ -package org.nanoboot.utils.timecalc.gui.common; +package org.nanoboot.utils.timecalc.swing.common; /** * Java Toaster is a java utility class for your swing applications * that show an animate box coming from the bottom of your screen @@ -116,7 +116,7 @@ public class Toaster { * Show a toaster with the specified message and the associated icon. */ public void showToaster(Icon icon, String msg) { - if (Utils.everythingHidden.get() || !Utils.toastsAreEnabled.get()) { + if (Utils.everythingHidden.getValue() || !Utils.toastsAreEnabled.getValue()) { //nothing to do return; } diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/WeatherWindow.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WeatherWindow.java similarity index 98% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/WeatherWindow.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WeatherWindow.java index 5bbbe01..aac468d 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/WeatherWindow.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/WeatherWindow.java @@ -1,4 +1,4 @@ -package org.nanoboot.utils.timecalc.gui.common; +package org.nanoboot.utils.timecalc.swing.common; import org.nanoboot.utils.timecalc.utils.Utils; @@ -21,7 +21,7 @@ import java.net.HttpURLConnection; import java.net.URL; /** - * @author pc00289 + * @author Robert * @since 16.02.2024 */ public class WeatherWindow extends JFrame { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/Widget.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java similarity index 96% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/Widget.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java index 703338e..0bcb5ea 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/common/Widget.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/common/Widget.java @@ -1,4 +1,4 @@ -package org.nanoboot.utils.timecalc.gui.common; +package org.nanoboot.utils.timecalc.swing.common; import org.nanoboot.utils.timecalc.utils.Utils; @@ -9,7 +9,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; /** - * @author pc00289 + * @author Robert * @since 20.02.2024 */ public class Widget extends JPanel { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/AnalogClock.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/AnalogClock.java similarity index 95% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/AnalogClock.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/AnalogClock.java index ad9b555..bc9e4fe 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/AnalogClock.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/AnalogClock.java @@ -1,6 +1,6 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; -import org.nanoboot.utils.timecalc.gui.common.Widget; +import org.nanoboot.utils.timecalc.swing.common.Widget; import org.nanoboot.utils.timecalc.main.TimeCalcConf; import org.nanoboot.utils.timecalc.utils.DateFormats; import org.nanoboot.utils.timecalc.utils.TimeHM; @@ -141,7 +141,7 @@ public class AnalogClock extends Widget { private void drawCentre(Graphics2D g2d, int centerX, int centerY) { Color currentColor = g2d.getColor(); - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.RED : + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.RED : FOREGROUND_COLOR); g2d.fillOval(centerX - 3, centerY - 3, 8, 8); g2d.setColor(currentColor); @@ -154,7 +154,7 @@ public class AnalogClock extends Widget { int endX = (int) (getWidth() / 2 + length * Math.cos(angle)); int endY = (int) (getHeight() / 2 + length * Math.sin(angle)); - g2d.setColor((Utils.highlighted.get() || mouseOver) ? color : + g2d.setColor((Utils.highlighted.getValue() || mouseOver) ? color : FOREGROUND_COLOR); g2d.setStroke(new BasicStroke(stroke)); g2d.drawLine(getWidth() / 2, getHeight() / 2, endX, endY); @@ -163,7 +163,7 @@ public class AnalogClock extends Widget { private void drawClockFace(Graphics2D g2d, int centerX, int centerY, int radius) { g2d.setStroke(new BasicStroke(2.0f)); - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.BLACK : + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.BLACK : FOREGROUND_COLOR); // System.out.println("centerX=" + centerX); // System.out.println("centerY=" + centerY); diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/Battery.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/Battery.java similarity index 91% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/Battery.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/Battery.java index 360cd86..2b1c080 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/Battery.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/Battery.java @@ -1,9 +1,9 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; import lombok.Getter; -import org.nanoboot.utils.timecalc.gui.common.Widget; +import org.nanoboot.utils.timecalc.swing.common.Widget; import org.nanoboot.utils.timecalc.main.TimeCalcConf; -import org.nanoboot.utils.timecalc.utils.BooleanHolder; +import org.nanoboot.utils.timecalc.utils.BooleanProperty; import org.nanoboot.utils.timecalc.utils.NumberFormats; import org.nanoboot.utils.timecalc.utils.Utils; @@ -29,7 +29,7 @@ public class Battery extends Widget { public static final double VERY_HIGH_ENERGY = 0.9; public static boolean wavesOff = false; private static final Font bigFont = new Font("sans", Font.BOLD, 24); - private BooleanHolder blinking = new BooleanHolder(); + private BooleanProperty blinking = new BooleanProperty(); private long tmpNanoTime = 0l; @Getter @@ -61,22 +61,22 @@ public class Battery extends Widget { blinking.flip(); tmpNanoTime = System.nanoTime(); } - if(donePercent <= 0 && blinking.get()){ - blinking.set(false); + if(donePercent <= 0 && blinking.getValue()){ + blinking.setValue(false); } super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.YELLOW : + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.YELLOW : FOREGROUND_COLOR); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - if (!Utils.ultraLight.get()) { + if (!Utils.ultraLight.getValue()) { g2d.fillRect(1, 1, totalWidth, totalHeight); } - if (Utils.highlighted.get() || mouseOver) { + if (Utils.highlighted.getValue() || mouseOver) { g2d.setColor( donePercent < LOW_ENERGY ? LOW_HIGHLIGHTED : (donePercent < HIGH_ENERGY ? MEDIUM_HIGHLIGHTED : @@ -86,10 +86,10 @@ public class Battery extends Widget { g2d.setColor(donePercent < LOW_ENERGY ? LOW : (donePercent < HIGH_ENERGY ? MEDIUM : (donePercent < VERY_HIGH_ENERGY ? HIGH : HIGHEST))); } - if (Utils.ultraLight.get()) { + if (Utils.ultraLight.getValue()) { g2d.setColor(Utils.ULTRA_LIGHT_GRAY); } - if(blinking.get()) { + if(blinking.getValue()) { g2d.setColor(BACKGROUND_COLOR); } int doneHeight = (int) (totalHeight * donePercent); @@ -138,7 +138,7 @@ public class Battery extends Widget { todoHeight + (waterSurfaceHeight * 1)}, pointCount); - g2d.setColor((Utils.ultraLight.get() || !Utils.highlighted.get()) && !mouseOver ? Utils.ULTRA_LIGHT_GRAY : Color.DARK_GRAY); + g2d.setColor((Utils.ultraLight.getValue() || !Utils.highlighted.getValue()) && !mouseOver ? Utils.ULTRA_LIGHT_GRAY : Color.DARK_GRAY); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); @@ -169,7 +169,7 @@ public class Battery extends Widget { g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); } - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.BLACK : + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.BLACK : Color.LIGHT_GRAY); if(donePercent <1) { @@ -199,7 +199,7 @@ public class Battery extends Widget { ((int) (totalWidth * 0.15)), (totalHeight / 4 * 3) + 20 + 20); } - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.BLACK : + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.BLACK : Color.LIGHT_GRAY); g2d.drawRect(1, 1, totalWidth - 2, totalHeight); diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/DayBattery.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/DayBattery.java similarity index 69% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/DayBattery.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/DayBattery.java index 865e28a..ce18a1e 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/DayBattery.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/DayBattery.java @@ -1,7 +1,7 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class DayBattery extends Battery{ diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/HourBattery.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/HourBattery.java similarity index 94% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/HourBattery.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/HourBattery.java index 59a0e47..84a926d 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/HourBattery.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/HourBattery.java @@ -1,9 +1,9 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; import org.nanoboot.utils.timecalc.utils.TimeHM; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class HourBattery extends Battery{ diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/MonthBattery.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/MonthBattery.java similarity index 87% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/MonthBattery.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/MonthBattery.java index f31086c..e459fa2 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/MonthBattery.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/MonthBattery.java @@ -1,7 +1,7 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class MonthBattery extends Battery{ diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressCircle.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/ProgressCircle.java similarity index 79% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressCircle.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/ProgressCircle.java index f0ca496..e3eaad8 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressCircle.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/ProgressCircle.java @@ -1,6 +1,6 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; -import org.nanoboot.utils.timecalc.gui.common.Widget; +import org.nanoboot.utils.timecalc.swing.common.Widget; import org.nanoboot.utils.timecalc.utils.NumberFormats; import org.nanoboot.utils.timecalc.utils.Utils; @@ -23,7 +23,7 @@ public class ProgressCircle extends Widget { } super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.darkGray : + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.darkGray : FOREGROUND_COLOR); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); @@ -34,11 +34,11 @@ public class ProgressCircle extends Widget { g2d.fillArc(0, 0, side, side, 90, -(int) angleDouble); int side2 = side / 2; - g2d.setColor(Utils.highlighted.get() || mouseOver ? + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? new Color(105, 175, 236) : FOREGROUND_COLOR2); g2d.fillArc(0 + (side2 / 2), 0 + (side2 / 2), side2, side2, 90, -(int) angleDouble2); - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.blue :FOREGROUND_COLOR); + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.blue :FOREGROUND_COLOR); g2d.drawString( NumberFormats.FORMATTER_ZERO_DECIMAL_PLACES.format(donePercent * 100) + "%", (int)(side / 8d * 0d),(int)(side / 8d * 7.5d)); diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressSquare.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/ProgressSquare.java similarity index 81% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressSquare.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/ProgressSquare.java index 1aedef6..d4aaab9 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/ProgressSquare.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/ProgressSquare.java @@ -1,6 +1,6 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; -import org.nanoboot.utils.timecalc.gui.common.Widget; +import org.nanoboot.utils.timecalc.swing.common.Widget; import org.nanoboot.utils.timecalc.utils.NumberFormats; import org.nanoboot.utils.timecalc.utils.Utils; @@ -39,7 +39,7 @@ public class ProgressSquare extends Widget { // System.out.println("x=" + x); // System.out.println("y=" + y); if (y > 1) { - if (Utils.highlighted.get() || mouseOver) { + if (Utils.highlighted.getValue() || mouseOver) { g2d.setColor(Color.GRAY); } g2d.fillRect(side - 4, side - 4, 4, 4); @@ -48,32 +48,32 @@ public class ProgressSquare extends Widget { g2d.setColor(FOREGROUND_COLOR); g2d.fillRect(1, 1, side, y - 1); if (x > 1) { - if (Utils.highlighted.get() || mouseOver) { + if (Utils.highlighted.getValue() || mouseOver) { g2d.setColor(Color.GRAY); } g2d.drawRect(1, y, x - 1, 1); } - if (Utils.highlighted.get() || mouseOver) { + if (Utils.highlighted.getValue() || mouseOver) { g2d.setColor(Color.GRAY); } g2d.fillRect(side - 4, 1, 4, 4); g2d.fillRect(1, 1, 4, 4); - if (Utils.highlighted.get() || mouseOver) { + if (Utils.highlighted.getValue() || mouseOver) { g2d.setColor(Color.GRAY); } g2d.drawLine(1, 1, x, y); // g2d.drawLine(1+1, 1+1, x+1, y+1); g2d.drawLine(1, 1 + 1, x, y + 1); g2d.drawLine(1, 1 + 1, x, y + 1); - if (Utils.highlighted.get() || mouseOver) { + if (Utils.highlighted.getValue() || mouseOver) { g2d.setColor(Color.BLUE); g2d.drawLine(x - 10, y - 10, x + 10, y + 10); g2d.drawLine(x + 10, y - 10, x - 10, y + 10); } g2d.setColor(FOREGROUND_COLOR); } - g2d.setColor(Utils.highlighted.get() || mouseOver ? Color.BLACK : BACKGROUND_COLOR); + g2d.setColor(Utils.highlighted.getValue() || mouseOver ? Color.BLACK : BACKGROUND_COLOR); g2d.drawString(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(donePercent * 100) + "%", (int)(side/8d*3d),(int)(side/8d*(donePercent > 0.5 ? 3d : 5d))); diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/WalkingHumanProgressAsciiArt.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/WalkingHumanProgressAsciiArt.java similarity index 99% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/WalkingHumanProgressAsciiArt.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/WalkingHumanProgressAsciiArt.java index efe3f7f..e1ed6b0 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/WalkingHumanProgressAsciiArt.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/WalkingHumanProgressAsciiArt.java @@ -1,6 +1,6 @@ -package org.nanoboot.utils.timecalc.gui.progress; +package org.nanoboot.utils.timecalc.swing.progress; -import org.nanoboot.utils.timecalc.gui.common.Toaster; +import org.nanoboot.utils.timecalc.swing.common.Toaster; import org.nanoboot.utils.timecalc.utils.Constants; import org.nanoboot.utils.timecalc.utils.NumberFormats; import org.nanoboot.utils.timecalc.utils.TimeHM; @@ -15,12 +15,11 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; -import java.util.Base64; import java.util.HashSet; import java.util.Set; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class WalkingHumanProgressAsciiArt extends JTextPane { diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/WeekBattery.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/WeekBattery.java similarity index 78% rename from modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/WeekBattery.java rename to modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/WeekBattery.java index 075dff5..b0595fb 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/gui/progress/WeekBattery.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/swing/progress/WeekBattery.java @@ -1,9 +1,7 @@ -package org.nanoboot.utils.timecalc.gui.progress; - -import org.nanoboot.utils.timecalc.utils.TimeHM; +package org.nanoboot.utils.timecalc.swing.progress; /** - * @author pc00289 + * @author Robert * @since 21.02.2024 */ public class WeekBattery extends Battery{ diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanHolder.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanHolder.java deleted file mode 100644 index bfea94a..0000000 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanHolder.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.nanoboot.utils.timecalc.utils; - -/** - * @author Robert - * @since 16.02.2024 - */ -public class BooleanHolder { - private boolean b; - - public BooleanHolder(boolean b) { - this.b = b; - } - - public BooleanHolder() { - this(false); - } - - public void set(boolean b) { - this.b = b; - } - - public boolean isEnabled() { - return get(); - } - public boolean isDisabled() { - return !get(); - } - public boolean get() { - return b; - } - - public void flip() { - this.b = !b; - } - public void enable() { - set(true); - } - public void disable() { - set(false); - } -} diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanProperty.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanProperty.java new file mode 100644 index 0000000..448297e --- /dev/null +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/BooleanProperty.java @@ -0,0 +1,39 @@ +package org.nanoboot.utils.timecalc.utils; + +/** + * @author Robert + * @since 16.02.2024 + */ +public class BooleanProperty extends Property { + + public BooleanProperty() { + super(Boolean.FALSE); + } + public BooleanProperty(boolean valueIn) { + this(Boolean.valueOf(valueIn)); + } + public BooleanProperty(Boolean valueIn) { + super(valueIn); + } + + public boolean isEnabled() { + return getValue(); + } + public boolean isDisabled() { + return !getValue(); + } + + + public void flip() { + setValue(!getValue()); + } + public void inverse() { + flip(); + } + public void enable() { + setValue(true); + } + public void disable() { + setValue(false); + } +} diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java index 7402e1f..e72e9f5 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Jokes.java +++ b/modules/time-calc-app/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.common.Toaster; +import org.nanoboot.utils.timecalc.swing.common.Toaster; import org.nanoboot.utils.timecalc.main.TimeCalcConf; import javax.swing.JFrame; diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Property.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Property.java new file mode 100644 index 0000000..c55ee4e --- /dev/null +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Property.java @@ -0,0 +1,16 @@ +package org.nanoboot.utils.timecalc.utils; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author Robert + * @since 23.02.2024 + */ +public class Property { + @Getter @Setter + private T value; + public Property(T valueIn) { + this.value = valueIn; + } +} diff --git a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java index d6b4b44..94095c9 100644 --- a/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java +++ b/modules/time-calc-app/src/main/java/org/nanoboot/utils/timecalc/utils/Utils.java @@ -1,7 +1,6 @@ package org.nanoboot.utils.timecalc.utils; import org.nanoboot.utils.timecalc.main.Main; -import org.nanoboot.utils.timecalc.main.TimeCalcException; import java.awt.Color; import java.io.File; @@ -19,22 +18,17 @@ import java.util.jar.Manifest; * @since 15.02.2024 */ public class Utils { - private static long startNanoTime = 0l; - public static final BooleanHolder highlighted = new BooleanHolder(); - public static final BooleanHolder ultraLight = new BooleanHolder(); - public static final BooleanHolder everythingHidden = new BooleanHolder(); - public static final BooleanHolder toastsAreEnabled = new BooleanHolder(true); + + public static final BooleanProperty highlighted = new BooleanProperty(); + public static final BooleanProperty ultraLight = new BooleanProperty(); + public static final BooleanProperty everythingHidden = new BooleanProperty(); + public static final BooleanProperty toastsAreEnabled = new BooleanProperty(true); public static final Color ULTRA_LIGHT_GRAY = new Color(216,216,216); /** * Count of bytes per one kilobyte. */ private static final int COUNT_OF_BYTES_PER_ONE_KILOBYTE = 1024; - public static void startApp() { - if(startNanoTime != 0) { - throw new TimeCalcException("App is already started."); - } - startNanoTime = System.nanoTime(); - } + private Utils() { //Not meant to be instantiated. } @@ -89,18 +83,7 @@ public class Utils { ((int) (Math.random() * 256)), ((int) (Math.random() * 256))); } - public static long getCountOfMinutesSinceAppStarted() { - return getCountOfSecondsSinceAppStarted() / 60l; - } - public static long getCountOfSecondsSinceAppStarted() { - return getCountOfMillisecondsSinceAppStarted() / 1000000000l; - } - public static long getCountOfMillisecondsSinceAppStarted() { - if(startNanoTime == 0l) { - throw new TimeCalcException("App was not yet started."); - } - return System.nanoTime() - startNanoTime; - } + /** * Returns version of "Time Calc" from jar file.